【发布时间】:2015-03-22 18:18:51
【问题描述】:
我需要将 std::map 与 glm::vec2 一起使用,所以我尝试实现 '
这是我的测试示例中的代码:
bool operator <(const glm::vec2& l, const glm::vec2& r)
{
int lsize = l.x + l.y;
int rsize = r.x + r.y;
return lsize < rsize;
}
class A
{
public:
A()
{
test[glm::vec2(5, 5)] = 4;
}
private:
std::map<glm::vec2, int> test;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
return 0;
}
当我创建自己的 Vector2 类并在那里以相同的方式实现运算符时,它会编译,但由于 glm::vec2 失败(我有 19 个错误告诉运算符 '
error C2676: binary '<' : 'const glm::vec2' does not define this operator or a conversion to a type acceptable to the predefined operator
请注意,我的运算符重载函数编译,错误来自使用 std::map,似乎'
如果可以帮助您,这里是 GLM 资源:https://github.com/g-truc/glm/tree/master/glm
【问题讨论】:
标签: c++ operator-overloading operators overloading glm-math