Предположим, у меня есть шаблонная функция
template <typename T>
void do_sth(T const&);
Для некоторых типов («маленьких» и копируемых) было бы лучше передать аргумент по значению вместо ссылки.
ТакМой вопрос: как проще всего перегрузить функцию в зависимости от базового типа?
Примечание: Лучшее, что я получил, это использование enable_if
с некоторыми условиями «простого» типа.И я считаю, что в стандартной библиотеке нет такой черты типа, как «простой тип».Поправьте меня если я ошибаюсь.Более того: использование enable_if
усложняется, поскольку функция принимает больше аргументов шаблона ( отредактировано ), потому что template <typename T, typename U> void do_sth(T, U)
потребуется 4 перегрузки: (значение, значение), (значение, ссылка), (ссылка, значение)и (ref, ref).