问题描述
您不能向C
++添加新的运算符,因此无法使用**
(或其他一些新东西)。同样,当双方都是内置类型时,您不能重载运算符,因此,使用现有的运算符(例如^
)来实现将浮点数/整数提高为浮点数/整数的幂也是可行的。请参见Stroustrup的C++常见问题解答(如下面的评论中所述)。
您可以实现自己的数字类并重载任何您想要的数字运算符,但这并不容易,并且不会像您认为的那样“优雅”或酷。
解决方法
我正在创建一个库,该库将具有类似python的概念。C没有像python具有(**
)一样的任何幂运算符(例如pow(x,n)
,等效x**n
于python)。
我试图使用Pre-Processor指令解决此问题。但没有发现任何把戏。
由于^该运算符用于XOR运算,所以我认为它不能用于幂运算符(可以吗?)
因此替代解决方案是double star(**
),因为它**
是编译器无法识别的运算符,因此我们如何使编译器知道这一点。
为此建议方法或解决方案。