У меня есть заметки в учебнике, что вы можете предоставить свою собственную реализацию для стандартных библиотечных функций, таких как swap (x, y)
, через специализацию шаблона или перегрузку функций. Это было бы полезно для любых типов, которые могут получить выгоду от чего-то другого, кроме обмена присваиваниями, например контейнеров STL
, например (в которых уже записаны свопы, я знаю).
Мои вопросы следующие:
Что лучше: специализация шаблона, позволяющая реализация подкачки или перегрузка функций, обеспечивающая точное параметры, которые вы хотите использовать без шаблона?
Почему это лучше? Или, если они равны, почему это?