Сообщение 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.
Ну а почему нет, подходы же одинаковые.
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.
Ну а почему нет, подходы же одинаковые.
V>Это как идея и код для подумать. Думаю тут всё понятно. Можно из форматера дергать свои функции с нужной себе логикой, кастомизировать стандартные и примитивные типы, вызывать std::форматтеры, если надо и т.д.
То есть, мы враппим std:/fmt:: format и дальше пользуемся только своим my::format. А formatter специализируем только один раз и пишем его так, что он делегирует вызовы пользовательским функциям с использованием ADL. Пожалуй, это будет работать, причем, даже для встроенных типов. Только для встроенных типов нужно будет заимплементить соответствующие функции в глобальном пространстве имен, причем так, чтоб их объявления (как минимум) были видны из нашей единственной специализации форматтера. Правильно я понял идею?
V>Хорошо бы проверить будет ли такое работать с std::format C++20.
Ну а почему нет, подходы же одинаковые.