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

Сообщение Re[21]: Cоздание базового шаблона минуя специализацию от 28.10.2022 14:26

Изменено 28.10.2022 14:30 rg45

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

V>Хотя в случае с функциями была простая перегрузка, типа:
V>template<htlib::v2::uint_t dimensions, typename other_t>
V>void formatter(const htlib::v2::pointxd_t<dimensions, other_t>&);
V>


+1

Или вот еще интересный сценарий: подход с функциями позволяет, например, легко определить один общий форматтер для всех пользовательских типов, объединенных общим пространством имен. Это может быть как простая шаблонная функция, так и просто using declaration, вносящее имя функции, определенной в каком-то другом пространстве имен. (И разумеется, никто при этом не запрещает использовать в этом же пространсве имен и другие, более специальные форматтеры наряду с общим). В подходе со специализациями функций придется написать тонны кода и постоянно расширять при добавлении новых типов.
Re[21]: Cоздание базового шаблона минуя специализацию
Здравствуйте, Videoman, Вы писали:

V>Хотя в случае с функциями была простая перегрузка, типа:
V>template<htlib::v2::uint_t dimensions, typename other_t>
V>void formatter(const htlib::v2::pointxd_t<dimensions, other_t>&);
V>


+1

Или вот еще интересный сценарий: подход с функциями позволяет, например, легко определить один общий форматтер (или фиксированный набор форматтеров) для всех пользовательских типов, объединенных общим пространством имен. Это может быть как простая шаблонная функция, так и просто using declaration, вносящее имя функции, определенной в каком-то другом пространстве имен. (И разумеется, никто при этом не запрещает использовать в этом же пространсве имен и другие, более специальные форматтеры наряду с общим). В подходе со специализациями функций придется написать тонны кода и постоянно расширять при добавлении новых типов.