LINUX.ORG.RU

История изменений

Исправление 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.