当我想出这个“奇怪”的解决方案时,我只是在为 C/C++ 中的一个新项目设计一些特定领域的语言设计:
define DSL(...) MakeCommand(#__VA_ARGS__\
)->Exec()->GetResults()
MyResults results = DSL( for p in people do something );
好的部分是这在标准上是正确的(但 Duff Switch 也是如此),并且是跨平台的,可移植的等......但是这种方法实际上并不比将字符串写入代码更好,但是由于 DSL 引擎解析无论如何,字符串,这样看起来更漂亮,并减少了混乱。但想知道其他人对此有何看法。
谢谢