Re[2]: Хочу странного: свой string для enum class
От: пффф  
Дата: 27.03.24 01:46
Оценка:
Здравствуйте, watchmaker, Вы писали:

П>>Тут проблема — я не могу использовать _Char_traits/_WChar_traits — это же просто детали MSVC реализации.


W>Правильно, не нужно эти детали реализации использовать.


Ну, в версии для MSVC таки решил взять её. Если что, просто отключу этот выбор и перейду на универсальную


W>Нужно просто предоставить свою специализацию шаблона std::char_traits<EMyEnum>, написанную тобой, и с той логикой, которая тебе нужна.


А для других стырил из GCC. Там пошли своим путём и ручками все специализации описали. Ну, любят видимо люди копипастить. В принципе, там вроде только оconstexpr был замакрошен, я его заменил на ключевое слово.
Функции _builtin_mem* аналогичные MSVCшным, так что похоже они де факто стандартны


П>>Плюс ещё профит от оптимизации коротких строк.


W>Учти, что код для нестандартных char_traits протестирован весьма плохо даже в STL.

W>Вот, например, (ещё непочиненный) баг в libc++: https://github.com/llvm/llvm-project/issues/51158
W>Конкретно с EMyEnum едва ли будут какие-то проблемы, но если будешь использовать что-то ещё более экзотичное, то появляются риски того, что STL не полностью поддерживает стандарт для таких типов "символов".

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.