如果可能的话,c ++中有一个功能可以按需强制执行函数的编译时执行。
该功能是constexpr
个功能。
现在在委员会,他们正在尝试(我认为这是Niccolas Josuttis的努力)
关于何时使用constexpr的指南,因为在C ++ 14中他们放松了constexpr
是一种潜在的风险"到处使用constexpr
。
首先,我想知道为什么决定用constexpr
修饰函数。
在D中你可以这样做:
//No special signature, as in C++'s constexpr
uint factorial(uint n) { ...}
//Calculate at compile-time. Note that the request is just made at the point of use
static val = fac(5);
constexpr
在D中使用static
并删除其他部分。