必须将常量表达式计算为整数类型吗?

时间:2011-11-15 00:21:41

标签: c++ constant-expression

假设我有以下内容:

int i = 1;
String str("abc");

str视为常量表达式吗?

从许多C ++书籍中,似乎必须将常量表达式计算为整数类型。

1 个答案:

答案 0 :(得分:2)

  

是否会考虑一个常量表达式?

不,它不会。在C ++ 11中,引入了一个新的关键字constexpr,它有助于概括常量表达式的概念。如果来自String的{​​{1}}构造函数足够小,那么可以将其声明为"abc";但是这样的构造函数可能必须分配内存,因此它不符合条件。