Здравствуйте, 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. Т.е. мы получим две копии практически одного и того же кода. На ровном месте, по сути.