C++;C+中嵌入式DSL语言的运算符重载+; P> C++ C++语言中的C++操作符重载,可以为嵌入式DSL代码创建一个类似DSL的语法。 "a": auto = call("add2Numbers", "b", "c");

C++;C+中嵌入式DSL语言的运算符重载+; P> C++ C++语言中的C++操作符重载,可以为嵌入式DSL代码创建一个类似DSL的语法。 "a": auto = call("add2Numbers", "b", "c");,c++,operator-overloading,C++,Operator Overloading,这是我理想中想要的。但是任何接近于有效C++的都是可以接受的。 < P>好建议:不要。code>C++是一种大型多用途语言,已经够复杂了。如果你随意改变东西,你会把别人(和你自己)搞糊涂。尤其是操作员过载和建议的预处理器应仔细处理 我的建议是编写所需的函数。您给出了一个关于某种赋值的示例(对不起,我不理解给定的代码),我相信完全有可能编写一个带有方便接口的函数来实现您想要做的事情。优点是synthax保留了所有的C++,可能的读者(以及未来的自己)不会感到困惑 我希望我正确地理解了你的问题。如果

这是我理想中想要的。但是任何接近于有效C++的都是可以接受的。

< P>好建议:不要。code>C++是一种大型多用途语言,已经够复杂了。如果你随意改变东西,你会把别人(和你自己)搞糊涂。尤其是操作员过载和建议的预处理器应仔细处理

我的建议是编写所需的函数。您给出了一个关于某种赋值的示例(对不起,我不理解给定的代码),我相信完全有可能编写一个带有方便接口的函数来实现您想要做的事情。优点是synthax保留了所有的
C++
,可能的读者(以及未来的自己)不会感到困惑

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


Felix

那实际上该怎么办?我怀疑你可以做任何欺骗来制作这个有效的C++语法。(我很清楚DSL的BTW)包含了“代码> >”如果0 <代码>·Endof技术上使它有效C++,但你可能希望某事发生。什么?只要我能够存储在C++对象中的所有信息,我就好了。然后我可以用某种方式处理这个问题。你可以看看Boost:Spirit,它提出了一个操作符重载的想法,以实现你想要的。我曾经用过的一种形式叫做(“a”,“auto”,“Add2Number”,“b”,“c”)。这很好,但可读性较差。我正在努力提高可读性。因为我不知道您在
C++
编程方面有多好,应该注意的是,您可以通过引用将变量传递给函数。通过引用传递意味着,您仍然使用函数中传递的原始变量,并且对其所做的更改适用于调用者函数的变量(例如,
main()
),我不知道这是否对您有帮助;我只是想声明它存在。