【发布时间】:2016-07-29 22:20:50
【问题描述】:
是否可以使用 C++ 运算符重载并为 C++ 中的嵌入式 DsL 代码创建类似 DSL 的语法。
"a": auto = call("add2Numbers", "b", "c");
这就是我想要的理想状态。但任何接近此的有效 C++ 都是可以接受的。
【问题讨论】:
-
那实际上应该做什么?我怀疑你可以做任何诡计来制作这种有效的 c++ 语法。 (我很清楚 DSL 是什么)
-
用
#if 0#endif括起来在技术上使它成为有效的C++,但你可能想要一些事情发生。什么? -
只要我能够将这里存在的所有信息存储在某个 C++ 对象中,我就很好。然后我可以以某种方式处理它。
-
您可以查看 Boost:Spirit 以了解运算符重载以完成您想要的操作。
-
我的一种形式是 call("a", "auto", "add2numbers", "b", c")。这很好,但可读性较差。我正在努力提高可读性