C++相談室 part66

このエントリーをはてなブックマークに追加
273デフォルトの名無しさん
コンマ演算子は副作用完了点で、
関数の引数のコンマは副作用完了点ではないのは理解してますが、
初期化子のコンマは副作用完了点でしょうか?

たとえば、以下のコードは正しく動きますか?

struct T {
 int a,b;
 ......
};
int f();

void g(){
 T t={ f(), t.a };
 .......
}

void h(){
 int a[2] = { f(), a[0] };
 .......
}