История изменений
Исправление KennyMinigun, (текущая версия) :
если потребовался конкатенирующий +=, то зачем ещё добавлять оператор +,
Для универсальности. А еще operator +
не определяет автоматически operator +=
который к тому-же не симметричен по отношению к своим аргументам (что как-бы наводит на размышления)
Всмысле, что не можно переставить аргументы местами (в случае если LHS не вектор)?
Политика ass-saver: ограничился лишь случаями когда вектор есть RHS. Логически, чтоб другой контейнер был в качестве RHS, надо для такого контейнера уже определять свои операторы.
А если все же наделать еще std::vector<T> operator+(Container &&, std::vector<T>)
то скорее всего возникнет ambiguous overload.
Исходная версия KennyMinigun, :
если потребовался конкатенирующий +=, то зачем ещё добавлять оператор +,
Так как operator +
не определяет автоматически operator +=
который к тому-же не симметричен по отношению к своим аргументам (что как-бы наводит на размышления)
Всмысле, что не можно переставить аргументы местами (в случае если LHS не вектор)?
Политика ass-saver: ограничился лишь случаями когда вектор есть RHS. Логически, чтоб другой контейнер был в качестве RHS, надо для такого контейнера уже определять свои операторы.
А если все же наделать еще std::vector<T> operator+(Container &&, std::vector<T>)
то скорее всего возникнет ambiguous overload.