Re[4]: Амбигус оператор
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.04.25 11:36
Оценка:
Здравствуйте, rg45, Вы писали:


R>И это правильное решение. Ибо всё это разные типы, по которым всегда можно сделать перегрузку. В то время как типы intN_t/uintN_t — это алиасы с нерегламентированным определением: https://timsong-cpp.github.io/cppwp/cstdint.syn#1.


Да, я сначала не очень хорошо подумал, когда делал через std::u/intXX_t
Казалось красиво и единообразно, и по идее, должно было покрывать всё.

R>В то же время, я считаю, что ты напрасно отбрасываешь вариант с шаблонами. С шаблонами можно сделать все по красоте. Обрати внимание на возможность перегрузок с приоритетами. Т.е. для каких-то групп типов можно предоставить общую перегрузку, а какие-то группы типов обработать поотдельности:


Ну, у меня и другие типы, кроме интов используются, и, если говорить о других местах, то там и так шаблоны, не хотелось делать что у части шаблонов список шаблонных параметров другой. Плюс, мне надо чтобы работало ADL, с шаблонами может что-то сломаться (предполагается, что пользователь может использовать свои типы, и должен в своём NS определить для типа шаблонную функцию martyFormatValueFormat, где параметр шаблона тип строки, в которую надо конвертнуть значение пользовательского типа).

А по красоте с разными группами типов как раз особенно и не надо городить.

Написал пачечку единоообразных методов, там ручками перенаправляю в генерик метод: https://github.com/al-martyn1/marty_format/blob/9bc7c73884f74e9fc8dbcc76e5612d504bc21cce/marty_format.h#L1217
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.