编译器错误 C2758

“member”: 必须初始化引用类型的成员

如果构造函数未初始化初始值设定项列表中引用类型的成员,则会导致编译器错误 C2758。 编译器将该成员保留为未定义状态。 如果已在构造函数的初始化列表中声明引用成员变量或为其赋值,则必须对其进行初始化。

下面的示例生成 C2758:

// C2758.cpp
// Compile by using: cl /W3 /c C2758.cpp
struct A {
   const int i;

   A(int n) { };   // C2758
   // try the following line instead
   // A(int n) : i{n} {};
};