Re: тянут в кланг и стандарт strong typedef
От: sergii.p  
Дата: 20.11.25 13:06
Оценка:
Здравствуйте, Великий Мессия, Вы писали:

ВМ>https://discourse.llvm.org/t/rfc-clang-adding-strong-typedefs/88843


в том виде в котором есть, надеюсь, инициативу зарубят.
Для UserId уже есть enum class

__attribute__((strong)) typedef int UserId;
enum class UserId{};


Для метров уже есть boost.units и новая поделка близко не удовлетворит потребностям.
Если сравнивать с другими языками, то это просто жалкие крохи. Например underlying типы поддерживают операцию +. Надо дать пользователю решать должен ли strong type поддерживать эту операцию. И если должен, то дать возможность переопределить. Почему подход с enum class и популярен. Он из коробки даёт операцию <=>

Как по мне, самый простой путь — доработать подход с enum class. Чтобы underlying type мог быть любым:
enum class PassportId: std::string { Invalid = "" };
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.