【发布时间】:2010-12-11 14:21:41
【问题描述】:
使用编译时常量整数的浮点计算是在编译时还是在运行时执行的?比如什么时候计算除法运算:
template <int A, int B>
inline float fraction()
{
return static_cast<float>(A) / B;
}
【问题讨论】:
-
AFAIK 标准没有定义这一点,它取决于编译器和优化标志。
-
顺便说一句,不要忘记您可以检查编译器的汇编器输出。你问的是编译器特定的,而不是语言特定的东西。我敢打赌,一个好的编译器(尤其是优化过的)会在编译时计算它所能做的一切。
标签: c++ floating-point math compile-time