C++11 编译器(他们是否)能注意到一个函数是一个constexpr并这样对待它们,即使它们没有被声明为constexpr?
我正在使用直接来自维基百科的示例向某人演示constexpr的使用:
int get_five() {return 5;}
int some_value[get_five() + 7]; // Create an array of 12 integers. Ill-formed C++
令我惊讶的是,编译器可以接受。因此,我进一步更改了 get_five() 以获取一些 int 参数,将它们相乘并返回结果,同时仍未显式声明为constexpr。编译器也可以。似乎如果编译器可以做到这一点,那么为了显式声明constexpr所需的限制并没有多大意义。