我个人使用 static_assert 作为 constexpr 函数的调试器,它不是最好的工具,但它可以替换类似代码。一个if (irational_value) cout<<"bug";
在编译时评估第 6 个斐波那契数是否实际上是 13 的愚蠢示例
#include <vector>
#include <iostream>
int main(){
constexpr unsigned sixth_fib=[](){
unsigned prev=1;
unsigned sum=1;
for (unsigned i=0;i<5;i++)
{
auto tmp=sum;
sum+=prev;
prev=tmp;
}
return sum;
}();
static_assert(sixth_fib==13);
std::cout<<sixth_fib<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)