這是關於這個第n個問題,但我無法找到確切的重複...一個結構的集合初始化,使用自己的數據成員
假設下面的代碼:
#include <iostream>
struct S {
int x;
int y;
};
class C {
public:
S s;
C() : s{123, s.x} {}
};
int main() {
std::cout << C().s.y << '\n';
}
可以像這樣初始化s.y
嗎? (只有JetBrains的ReSharper通過以下方式投訴:Object member this->s.x might not be initialized
)。
如果有人用標準的引用來確認他們的答案,那將會很棒。
[最接近的規則](http://eel.is/c++draft/special#class.cdtor-1)我知道這種事情在這裏不適用,因爲'S'是微不足道的。再次,[這個規則](http:// eel。是/ C++ draft/dcl.init.aggr#3)似乎有利於你。 – WhiZTiM
相關[在聚合初始化過程中是否定義了從較新成員表達式引用早期成員的行爲?](http://stackoverflow.com/q/32940847/1708801) –