Код: Выделить всё
#include
struct Point {
float x;
float y;
float z;
inline bool
operator < (const Point& other)
{
// Based on this example:
// https://en.cppreference.com/w/cpp/utility/tuple/tie
return std::tie(x, y, z) < std::tie(other.x, other.y, other.z);
}
};
< /code>
Пока все хорошо. Теперь я хочу, чтобы экземпляр этой структуры был вставлен в экземпляр std :: set Код: Выделить всё
int
main(int argc, char* argv[])
{
std::set points;
Point point;
point.x = 0.1f;
point.y = 0.2f;
point.z = 0.3f;
points.insert(point);
return 0;
}
< /code>
Тем не менее, составление этого кода приводит к сообщению об ошибке: < /p>
/usr/include/c++/13/bits/stl_function.h:408:20: error: no match for ‘operator
Я не совсем понимаю это сообщение об ошибке - почему оно жалуется на оператор не совпадающего? Что здесь не так, может быть, есть ошибка в перегрузке оператора? Или это связано с перегрузкой, требующей экземпляров Const Подробнее здесь: https://stackoverflow.com/questions/796 ... perator-er
Мобильная версия