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

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

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

Re[10]: std::variant для вложенного класса
Здравствуйте, B0FEE664, Вы писали:

BFE>
BFE>using value_type = float;

BFE>struct A
BFE>{
BFE>  struct B
BFE>  {
BFE>     value_type n = 0;
BFE>  };
BFE>  using value_type = int;
BFE>};
BFE>


Не понял я что ты хотел сказать этим примером. Замени здесь классы на пространства имен получить ровно то же самое. И как это иллюстриует неполноту вложенного класса после его определения?

По сути ты демонстрируешь следующее:

using value_type = float;

struct A
{
    static_assert(std::same_as<float, value_type>);
    using value_type = int;
    static_assert(std::same_as<int, value_type>);
};


Как это относится к обсуждаемой проблеме?

А gcc на твой пример вообще плюнется ошибкой: "declaration of 'using A::value_type = int' changes meaning of 'value_type'".
Re[10]: std::variant для вложенного класса
Здравствуйте, B0FEE664, Вы писали:

BFE>
BFE>using value_type = float;

BFE>struct A
BFE>{
BFE>  struct B
BFE>  {
BFE>     value_type n = 0;
BFE>  };
BFE>  using value_type = int;
BFE>};
BFE>


Не понял я что ты хотел сказать этим примером. Замени здесь классы на пространства имен получить ровно то же самое.

По сути ты демонстрируешь следующее:

using value_type = float;

struct A
{
    static_assert(std::same_as<float, value_type>);
    using value_type = int;
    static_assert(std::same_as<int, value_type>);
};


Как это относится к обсуждаемой проблеме?

А gcc на твой пример вообще плюнется ошибкой: "declaration of 'using A::value_type = int' changes meaning of 'value_type'".