【发布时间】:2019-11-10 04:19:20
【问题描述】:
如何在 c++ 中定义像 ++ 或 -- 这样的一侧运算符?
例如我们想定义a## 来做(a % 45) + 2
[只是一个例子]
【问题讨论】:
-
##是预处理指令,不能重载 -
C++ 中没有
##运算符。你不能组成自定义运算符,只有overload predefined operators。至于++和--,正式名称为increment/decrement operators -
你不能添加任何操作符,你不能为原始类型重载操作符。
-
要定义
a##,您需要创建自己的语言。您的新语言可能类似于 C++。创建一种语言是一项艰巨的任务。玩具语言可能需要几个月的时间来编写; (根据经验)工业级语言需要十年或更长时间。 -
“单面”运算符的通用名称是 unary 运算符