Информация об изменениях

Сообщение Re[2]: Cоздание базового шаблона минуя специализацию от 02.11.2022 20:57

Изменено 02.11.2022 21:01 rg45

Re[2]: Cоздание базового шаблона минуя специализацию
Здравствуйте, Videoman, Вы писали:

V>Это как идея и код для подумать. Думаю тут всё понятно. Можно из форматера дергать свои функции с нужной себе логикой, кастомизировать стандартные и примитивные типы, вызывать std::форматтеры, если надо и т.д.


То есть, мы враппим std:/fmt:: format и дальше пользуемся только своим my::format. А formatter специализируем только один раз и пишем его так, что он делегирует вызовы пользовательским функциям с использованием ADL. Пожалуй, это будет работать, причем, даже для встроенных типов. Только для встроенных типов нужно будет заимплементить соответствующие функции в пространстве имен my, причем так, чтоб их объявления были видны из нашей единственной специализации форматтера. Правильно я понял идею?

V>Хорошо бы проверить будет ли такое работать с std::format C++20.


Ну а почему нет, подходы же одинаковые.
Re[2]: Cоздание базового шаблона минуя специализацию
Здравствуйте, Videoman, Вы писали:

V>Это как идея и код для подумать. Думаю тут всё понятно. Можно из форматера дергать свои функции с нужной себе логикой, кастомизировать стандартные и примитивные типы, вызывать std::форматтеры, если надо и т.д.


То есть, мы враппим std:/fmt:: format и дальше пользуемся только своим my::format. А formatter специализируем только один раз и пишем его так, что он делегирует вызовы пользовательским функциям с использованием ADL. Пожалуй, это будет работать, причем, даже для встроенных типов. Только для встроенных типов нужно будет заимплементить соответствующие функции в глобальном пространстве имен, причем так, чтоб их объявления (как минимум) были видны из нашей единственной специализации форматтера. Правильно я понял идею?

V>Хорошо бы проверить будет ли такое работать с std::format C++20.


Ну а почему нет, подходы же одинаковые.