Рассмотрим следующий код, в котором мы инициализируем часть D
на основе другой части D
:
struct c {
c() : D{rand(), D[0]} {}
int D[2];
};
int main() {
c C;
assert(C.D[0] == C.D[1]);
}
Является ли указанная выше программа корректной? Можем ли мы безопасно использовать одну часть того же массива для инициализации другой части?