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

G.R*_*sky 15 c++ constexpr c++11

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

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

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

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

Mik*_*our 14

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

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