作者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/cn.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