Сообщение Re[11]: std::variant для вложенного класса от 05.12.2025 17:55
Изменено 05.12.2025 17:56 rg45
Re[11]: std::variant для вложенного класса
Здравствуйте, sergii.p, Вы писали:
SP>
Что-то ты перемудрил. При чём тут добрались или не добрались. Твои SuperDuperConst вообще никакого рояля не играют. Ты можешь переносить их как угодно ДО и как угодно ПОСЛЕ, а можешь удалить их все, а инициализацию заменить литеральным нулём и проблема останется ровно та же самая.
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 вообще никакого рояля не играют. Ты можешь переносить их как угодно ДО и как угодно ПОСЛЕ, а можешь удалить их все, а инициализацию заменить литеральным нулём и проблема останется ровно та же самая.
Re[11]: std::variant для вложенного класса
Здравствуйте, sergii.p, Вы писали:
SP>
Что-то ты перемудрил. При чём тут добрались или не добрались. Твои SuperDuperConst вообще никакого рояля не играют. Ты можешь переносить их как угодно ДО и как угодно ПОСЛЕ, а можешь удалить их все, а инициализатор заменить литеральным нулём и проблема останется ровно та же самая.
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 вообще никакого рояля не играют. Ты можешь переносить их как угодно ДО и как угодно ПОСЛЕ, а можешь удалить их все, а инициализатор заменить литеральным нулём и проблема останется ровно та же самая.