必须将常量表达式求值为整型
Must a constant expression be evaluated to an integral type?
假设我有以下内容:
int i = 1;
String str("abc");
将str
视为常数表达式吗?
在许多c++书籍中,似乎常量表达式必须求值为整型
str会被视为常量表达式吗?
不,不会。在c++ 11中引入了一个新的关键字constexpr
,它有助于一般化常量表达式的概念。如果"abc"
的String
构造函数足够琐碎,则可以声明为constexpr
;然而,这样的构造函数可能需要分配内存,所以它不符合条件。
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 将长整型值打印为带有前导零的十六进制
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 将整型常量映射到类型
- 错误:数组大小表达式必须具有整型或无作用域枚举类型,而不是'double'
- 整型常量表达式中不允许使用模板参数
- 在浮点运算上执行平方运算和平方根运算时:表达式必须具有整型或非整型枚举类型
- 获取错误:新声明符中的表达式必须具有整型或枚举类型C++
- Project Euler#3获取一个Intellisense表达式,该表达式必须具有整型或无范围枚举类型
- C++错误:在使用运算符[]将元素插入std::map时,“表达式必须具有整型或非范围枚举类型”
- 重载操作符+:表达式必须是整型或无作用域枚举类型
- 必须将常量表达式求值为整型
- 常数表达式可以是双精度类型而不是只能是整型吗?
- 表达式必须具有整型或无作用域枚举类型
- 表达式在指针上必须具有整型或非整型枚举类型
- 表达式必须具有整型或无作用域枚举类型
- 在c++中使用boost正则表达式匹配从字符串转换为整型时出错