2016-07-29 34 views
-3

是否可以使用C++运算符重载并在C++中为嵌入式DsL代码创建类DSL的语法。在C++中嵌入式DSL语言的C++运算符重载

"a": auto = call("add2Numbers", "b", "c"); 

这就是我想要的。但任何接近这个有效C++的东西都是可以接受的。

+0

实际上应该做些什么?我怀疑你可以做任何欺骗,使这个有效的C语法。 (我很清楚DSL是什么) –

+0

用'#if 0'' #endif'包围它在技术上使其成为有效的C++,但您可能希望发生某些事情。什么? – nwp

+0

只要我能够存储在这里的所有信息在一些C++对象,我很好。不知怎的,我可以处理这个。 – user855

回答

2

好建议:不要。 C++是一个很大的多用途语言,已经够复杂了。你混淆的人(和你自己呢!),如果你随机改变的东西。尤其是操作员超载和建议的预处理器应该小心处理。

我的建议是编写你需要的功能。你给了一个关于某种赋值的例子(对不起,不明白给定的代码),我相信完全可以用一个方便的接口编写一个函数来实现你想要做的事情。好处是你的合成器保持全部C++和可能的读者(以及你未来的自己)不会感到困惑。

我希望我能正确理解你的问题。如果没有,请纠正我。

Felix

+0

因为我不知道你用'C++'编程有多好,应该注意的是你可以通过引用一个函数来传递你的变量。通过引用传递意味着,你仍然使用函数中的原始传入变量,并将其更改为适用于调用者函数的变量(例如'main()')也是如此。 我不知道这是否有帮助无论如何,我只是想说明这存在。 – Thynome