【发布时间】:2013-06-27 16:00:30
【问题描述】:
从page 中注意到,c++11 中的数学函数似乎都没有使用 constexpr,而我相信它们都可以。所以这给我留下了两个问题,一个是为什么他们选择不制作函数 constexpr。还有两个用于sqrt 之类的函数,我可能会编写自己的 constexpr,但是像 sin 或 cos 这样的函数会更棘手,所以有办法绕过它。
【问题讨论】:
-
他们没有选择不制作函数 constexpr。他们只是没有做出任何选择(我相信将来会有这样的提议)。
-
@R.MartinhoFernandes - 有一些讨论,但制作复杂函数的问题
constexpr是编译器必须执行运行时计算,这意味着拥有 C++ 解释器内置在编译器中。这是一项艰巨的工作...... -
@PeteBecker 并非所有这些都是复杂的,但我想我说我也是在说为什么不自己做它们
-
那么编译器应该为
constexpr double v = tan(1.570796326)设置v的值呢? -
注意,gcc has implemented most of the math function as constexpr 虽然扩展名不符合标准,但这应该会改变。所以绝对可行。