Re[15]: Cоздание базового шаблона минуя специализацию
От: so5team https://stiffstream.com
Дата: 27.10.22 15:45
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Где-то в потрохах мы делегируем std::format_as<my_trait>() до каждого форматера, который является функцией и получает его в качестве аргумента. Тогда если отключены стандартные форматеры, ADL будет искать во всех остальных местах, в том числе в my_namespace. А std::print для удобства пусть вызывает что-то типа: std::print_as(std::cout, std::format_as<std::format_traits>, "Value {} at {}", a, b);


И что мешает внести такое предложение? Хотя бы вот сюда: https://stdcpp.ru/proposals/
Если людей это заинтересует, то они доведут это до формального предложения комитету.

Меня в таком подходе, например, сильно смущает такой момент: допустим, мы линкуем два объектника. В одном используются вызовы std::print (которые трансформируются в std::print_as(..., std::format_as<std::format_traits>, ...)), а в другом вызовы std::print_as(.., std::format_as<my_traits>, ...). Поскольку std::print_as шаблонная, то компилятор сгенерирует и std::print_as для std::format_traits, и для my_traits. Т.е. мы получим две копии практически одного и того же кода. На ровном месте, по сути.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.