const表达式和const有什么不同?

时间:2015-04-11 09:40:08

标签: c++

在我的c ++书中,这是写的,第二个new_sz()上有一个错误:函数调用必须在常量表达式中有一个常量值。

constexpr int new_sz(){return 42;}
constexpr int foo=new_sz();  //ok:foo is a constant expression.

但是当它是:

constexpr int new_sz(){return 42;}
const int foo=new_sz();

没有错误。我想知道的是constexprconst有何不同?如果是的话:我该如何处理这个错误? 在我的书中说:在这里我们将new_sz定义为constexpr。编译器可以验证编译时间_对new_sz的调用返回一个常量表达式,因此我们可以使用{{1}初始化我们的constexpre变量foo。 但是仍有一个错误,尽管在书中它是对的。

0 个答案:

没有答案