Re[2]: Cоздание базового шаблона минуя специализацию
От: Videoman Россия https://hts.tv/
Дата: 26.10.22 11:54
Оценка:
Здравствуйте, rg45, Вы писали:

R>Вот прямо в такой формулировке, думаю, что невозможен — потому что в таком случае возникает две различные версии одной и той же специализации, а это нарушение ODR. Нужно думать, какие тут можно костыли прикрутить.


Наверное вопрос в этом, как выкрутится теперь. Ситуация простая. У std::formatter есть специализация для вывода std::chrono::duration<>. У меня в библиотеках везде используется своя специализация времени:
using reftime_t = std::chrono::duration<int64, std:ratio<1, 10000000>>;
Стандартные возможности форматирования огромны, но мне хочется их расширить для своего типа времени и переиспользовать. Таким образом объявляя
template <>
struct std::formatter<reftime_t> {
    // ...
};
я автоматически лишаюсь возможности вызвать стандартную реализацию и вынужден повторять всю логику заново. Это не дело, я считаю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.