1

我正在创建一个库,其中包含类似于 python 的概念。C 没有任何像 python 有 ( **) 的幂运算符(例如pow(x,n),相当于x**n在 python 中)。

我尝试使用预处理器指令来解决这个问题。但没有找到任何技巧。

由于 ^ 此运算符用于 XOR 运算,所以我认为它不能用于幂运算符(我们可以吗?)

所以替代解决方案是双星(**),因为**它是编译器无法识别的运算符,所以我们如何才能让编译器知道这一点。

为此提出方法或解决方案。

4

1 回答 1

4

您不能向 C++ 添加新的运算符,因此使用**(或其他一些新事物)已经过时了。此外,当双方都是内置类型时,您不能重载运算符,因此使用现有运算符(例如^)来实现将浮点数/整数提升为浮点数/整数的幂也是不可行的。请参阅Stroustrup 的 C++ FAQ 上的这个问题(如下面的评论中所述。)

您可以实现自己的数字类并重载您想要的任何运算符,但这并不容易,也不会像您想象的那样“优雅”或酷。

所以,只需使用一个函数。

于 2013-11-05T17:02:01.893 回答