常量表达式可以是双重类型而不是仅仅是整数吗?

时间:2015-09-13 05:30:42

标签: c++

从“c ++ primer,4th”开始,有一句话

  

常量表达式是编译器在编译时可以计算的整数类型的表达式。

双,长型不行吗?

2 个答案:

答案 0 :(得分:0)

根据this页面,您可以创建任何类型的constexpr具有简单的析构函数,并且是聚合或具有constexpr构造函数,前提是这适用于每个基类也是。换句话说,除了遵循规则的用户定义类型之外,任何基本类型都可以。

所以,是的,您可以拥有constexpr类型为double的{​​{1}}表达式(long是一个整数类型,因此本书并没有挑战它的constexpr - iness)。

答案 1 :(得分:-2)

应用字符串常量,如:

const std :: string s(“这是一个常量表达式”);

另外,

const double x(0.25);

其中x是const double,0.25是常量表达式。