编译器生成的构造函数初始化成员

Sah*_*noi 2 c++ constructor c++11 c++14

有没有办法让(MSVC)编译器生成以下初始化程序列表模式模式后面的ctor',它采用成员减速的顺序而不是默认构造函数(或同样)?

struct Foo{
    float a;
    float b;
    float c;

    Foo(float _a, float _b, float _c) : a(_a), b(_b), c(_c) {}
};
Run Code Online (Sandbox Code Playgroud)

Cor*_*mer 5

它已经存在,因为您的示例是POD聚合类型.

struct Foo{
    float a;
    float b;
    float c;
};
Run Code Online (Sandbox Code Playgroud)

所以你可以Foo用类似的东西来初始化

Foo f{1.0f, 2.0f, 3.0f};
Run Code Online (Sandbox Code Playgroud)

其语法与手动定义的构造函数相同

工作演示