什么时候应该将构造函数设置为constexpr?

时间:2014-11-14 14:55:15

标签: c++ c++11 constexpr

我知道c ++ 11允许使用constexpr为编译时而不是运行时指定表达式。

我知道这也可以用于类的构造函数。 但是,此构造函数必须初始化类的所有成员,以便用作constexpr(在编译时),并且它调用的任何函数也应标记为constexpr。

但是什么时候会将他的构造函数设置为constexpr,除了稍微优化之外还有其他任何好处吗?

这是否意味着,如果我可以,我应该总是将我的构造函数设置为constexpr?

1 个答案:

答案 0 :(得分:12)

通过创建构造函数constexpr,您允许用户创建constexpr个对象,并在它们自己的常量表达式中使用它们。这使得该课程在某些情况下更友好;例如,在为可能的情况下将数据放入只读存储器的嵌入式系统进行编程时。

因此,从使课程尽可能灵活且通常有用的角度来看,如果可以的话,你应该这样做。