Информация об изменениях

Сообщение Re[11]: std::variant для вложенного класса от 05.12.2025 17:55

Изменено 05.12.2025 17:55 rg45

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