Здравствуйте, sergii.p, Вы писали:
SP>SP>static constexpr int SuperDuperConst = 0;
SP>struct Outer {
SP> struct Inner {
SP> int i = SuperDuperConst;
SP> };
SP> std::variant<Inner> v; // i должна быть равна 42, но мы ещё не добрались до определения SuperDuperConst и конструктор сгенерировать не можем - компиляция провалилась
SP> static constexpr int SuperDuperConst = 42;
SP>};
SP>
А когда вместо SuperDuperConst используется литеральный ноль в качестве инициализатора, куда мы в этом случае ещё не добрались?