作者lovesnake (LoyalDog)
看板C_and_CPP
標題[問題] 靜態產生code的方法
時間Fri Dec 2 00:24:33 2016
實在不知道怎麼下標題只好下個大概了。
因為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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1480609476.A.659.html
1F:推 soheadsome: 看不懂 你是想做類似java的enum class?12/02 06:53
改了一下排版,有比較看得懂嗎?
meta programming的問題,至於用template或者macro都可以。
※ 編輯: lovesnake (223.136.86.255), 12/02/2016 10:20:15
2F:推 CoNsTaR: 說認真的 通常遇到這種問題,不是你的架構設計有問題,就12/02 11:05
3F:→ CoNsTaR: 是該換個語言了…12/02 11:05
跨平臺似乎只剩下QT可以用了Orz
想把QML跟c++ code切乾淨一點,跑QML Test的時候不用管c++ code
4F:→ uranusjr: 你用什麼 IDE?這個感覺可以用個 snippet 搞定12/02 12:18
VS~ 但我想用語言特性去搞定他Orz
如果真的沒辦法才會採用別的方法
5F:推 BlazarArc: 比較好奇為何要有這些output12/02 14:12
6F:→ uranusjr: 要用在 QML 吧 12/02 14:25
7F:推 BlazarArc: 哦哦 QML 不熟沒用過,雖然也在用 Qt 做 GUI @@12/02 16:42
※ 編輯: lovesnake (61.70.250.188), 12/03/2016 03:42:33