【发布时间】:2023-03-03 09:07:20
【问题描述】:
我对初始化列表和序列点很好奇。不久前我读到初始化列表中的评估顺序是从左到右的。如果是这样,那么评估点之间肯定存在某种序列点,我错了吗?所以说是以下有效代码吗?有什么会导致未定义的行为吗?
int i = 0;
struct S {
S(...) {}
operator int() { return i; }
};
int main() {
i = S{++i, ++i};
}
感谢所有回复。
【问题讨论】:
标签: c++ c++11 undefined-behavior initializer-list