为什么我们需要std::initializer_list的私有构造函数?

的建议实施std::initializer_list的标准和C ++编程语言很简单。简单我的意思是没有什么奇怪的。
但是在 Compilers 的实现中事情变得复杂std::initializer_list,例如,GCC 有一个私有构造函数 for std::initializer_list,上面有一条注释说:'编译器可以调用私有构造函数。'。在这里eerorika回答:std::initializer_list是特别的。所以我在编译器源代码中寻找它:

铛:

  • AST/ExprCXX.h#L789
  • AST/StmtPrinter.cpp#L1935
  • AST/ItaniumMangle.cpp#4523

海湾合作委员会:

  • cp/cp-tree.h#L2303
  • cp/init.c#L702
  • cp/call.c#L801

我不明白为什么我们需要一个特殊的私有构造函数?前段时间我想转换std::vector<T>std::initializer_list<T>.

以上是为什么我们需要std::initializer_list的私有构造函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>