c ++默认构造函数constexpr或正确未定义?

时间:2017-10-23 16:11:28

标签: c++ c++11 constexpr default-constructor

声明默认构造函数是否更好:

  • 将默认值分配给成员数据,并声明为constexpr或
  • 保留所有成员数据未定义?

我主要在STL容器的背景下思考,例如向量大量使用默认构造函数,哪种方式更有效?

1 个答案:

答案 0 :(得分:0)

与C ++中的所有内容一样,它取决于。

您打算创建大缓冲区吗?两者都需要优化不清除内存不愿意自己分配未分配的内存吗?

或者您希望您的程序更经常正确吗?

这样,默认你的会员数据和constexpr您的构造函数。有一些方法涉及一些箍,你可以声明一个未初始化的内存缓冲区,其大小足以容纳你的类的N个副本,并在以后初始化数据。 (确实没有符合标准的可移植方式来自己实现std::vector,但这是标准中的一个缺陷,很快就会在现实生活中对你产生影响。)