[問題] 靜態產生code的方法

看板C_and_CPP作者 (LoyalDog)時間8年前發表 (2016/12/01 16:24), 8年前編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/1
實在不知道怎麼下標題只好下個大概了。 因為QT的Q_ENUMS實在難用,所以我想要將enum自己想辦法展開成我需要的形式,大概如 下 : ====================== INPUT : enum class Enum { A, B }; ====================== OUTPUT : enum class Enun { A, B }; int A() { return Enum::A; } Q_PROPERTY(int a READ A CONSTANT) int B() { return Enum::B; } Q_PROPERTY(int b READ B CONSTANT) ====================== 看來看去就是個RegExpree+迴圈就可以搞定的事,不過卻不知道從何下手。 還有一個奢望是讓IDE可以辨別這個Enum的存在… GEN_ENUM(Enum, A, B) 把enum的各項拆開可以產生正確的結果但IDE無法識別Enum, 有點 麻煩… 拆開各項再加個IDE插件也是個辦法但是更麻煩… 寫個preprocessor更別提了 已經想不到別的方法了……只好來請教各位CPP大師 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.250.188 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480609476.A.659.html

12/02 06:53, , 1F
看不懂 你是想做類似java的enum class?
12/02 06:53, 1F
改了一下排版,有比較看得懂嗎? meta programming的問題,至於用template或者macro都可以。 ※ 編輯: lovesnake (223.136.86.255), 12/02/2016 10:20:15

12/02 11:05, , 2F
說認真的 通常遇到這種問題,不是你的架構設計有問題,就
12/02 11:05, 2F

12/02 11:05, , 3F
是該換個語言了…
12/02 11:05, 3F
跨平臺似乎只剩下QT可以用了Orz 想把QML跟c++ code切乾淨一點,跑QML Test的時候不用管c++ code

12/02 12:18, , 4F
你用什麼 IDE?這個感覺可以用個 snippet 搞定
12/02 12:18, 4F
VS~ 但我想用語言特性去搞定他Orz 如果真的沒辦法才會採用別的方法

12/02 14:12, , 5F
比較好奇為何要有這些output
12/02 14:12, 5F

12/02 14:25, , 6F
要用在 QML 吧
12/02 14:25, 6F

12/02 16:42, , 7F
哦哦 QML 不熟沒用過,雖然也在用 Qt 做 GUI @@
12/02 16:42, 7F
※ 編輯: lovesnake (61.70.250.188), 12/03/2016 03:42:33
文章代碼(AID): #1OG4x4PP (C_and_CPP)