У меня есть структура, определенная следующим образом:
struct Vec3 {
float x, y, z;
}
Когда я попытался использовать std::unique
на std::vector
, я столкнулся с эта ошибка:
Описание Тип расположения пути к ресурсу сначала нет совпадений для «operator==» в «_ ». _gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* с _Iterator = Vec3*, _Container = std::vector > == _ далее. _gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* with _Iterator = Vec3*, _Container = std::vector >' ModelConverter, строка 4351, внешнее расположение: /usr/include/c++/4.4.6/bits/ stl_algo.h C/C++ Проблема
Я понимаю необходимость наивности компилятора в в операторах равенства и других (в этом случае * почти наверняка не будет тем, что я имею в виду), но это вопрос политики или есть техническая причина, о которой я не знаю? Есть оператор присваивания по умолчанию, так почему же нет оператора равенства по умолчанию?