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