ideas icon indicating copy to clipboard operation
ideas copied to clipboard

Добавить возможность создавать типы со строгой именной, а не структурной эквивалентностью

Open rsashka opened this issue 1 month ago • 0 comments

Типы со строгой именной эквивалентностью позволят предотвратить автоматические преобразования типов данных и как следствие, связанные с этим логические ошибки.

Чтобы не нарушать обратную совместимость со старым исходным кодом, определение субтипов с именной эквивалентностью можно реализовать по аналогии с контролем обращение к глобальным переменным в функциях и методах классов · Issue #626 · cpp-ru/ideas за счет использования ключевого слова used.

"used subtype int IntSubType;"

Пример использования именной эквивалентности типов

    typedef int IntType;
    used subtype int IntSubType; 
    static_assert(std::is_same<decltype(IntType), int>::value); // OK
    static_assert(std::is_same<decltype(IntSubType), int>::value); // FALSE
    static_assert(std::is_same<decltype(IntSubType), IntType>::value); // FALSE
    static_assert(std::is_same<decltype(IntSubType), IntSubType>::value); // OK

rsashka avatar Nov 19 '25 09:11 rsashka