我在cppreference网站上看到了这个例子,但是运行结果不是预期的。(http://en.cppreference.com/w/cpp/language/constexpr)
页面上写着:“
因为noexcept运算符总是为常量表达式返回true,所以它可用于检查constexpr函数的特定调用是否采用常量表达式分支:“
但我试验了这个:
$cat testNoexcept.cpp
#include<stdio.h>
constexpr int f1();
constexpr int f2(){return 1;}
int main(){
constexpr bool b1=noexcept(f1());//false
constexpr bool b2=noexcept(f2());//true
printf("%d,%d\n",b1,b2);
return 0;
}
$g++ testNoexcept.cpp -std=c++14&&./a.out
0,0
两者都是假的。为什么?网站是错误的,还是我的理解错了?