是否可以使用宏来粘贴运算符?(类似于标记粘贴但与实际操作符相关.
例:
#define DO(a, operator, b) a ##operator b
DO(1, +, 3); // 4
DO(4, <<, 1); // 8
Run Code Online (Sandbox Code Playgroud)
注意 - 这是一个非常简单的例子.我的实际用例是我正在研究一种有很多位移操作的算法,我希望能够将我需要的移位运算符传递给宏(>>或<<)以使事情变得更简单.
为什么不简单
#define DO(a, operator, b) ((a) operator (b))
Run Code Online (Sandbox Code Playgroud)
?(还添加了一些安全括号.)