Предположим, что я реализую коллекцию и хочу добавить в нее элемент, что-то вроде.
template <typename T>
class MyCollection
{
void add(const T& element);
};
Теперь, поскольку добавление элемента обычно означает его копирование, по соображениям эффективности имеет смысл иметь следующую версию добавить также void add(T&& element)
. Теперь проблема в том, что, очевидно, код для обеих функций в точности один и тот же, с той лишь разницей, что и тип аргумента. Моя команда C ++ в настоящее время ограничена, но я хотел бы знать, есть ли простой идиоматический c способ написать add
функцию один раз, не переписывая ее дважды?