Я пытаюсь использовать glm :: vec2 для ввода std :: map , но у меня есть эта ошибка:
Код серьезности Описание Файл проектаОшибка состояния подавления строки C2678 двоичный файл «<»: не найден оператор, который принимает левый операнд типа «const glm :: vec2» (или нет допустимого преобразования) VoxelEngine C: \ Program Files (x86) \ Microsoft Visual Studio14.0 \ VC \ include \ xstddef 239 </p>
После поиска в Google я обнаружил, что мне нужен оператор перегрузки, я попробую использовать это:
bool operator<(const glm::vec2& lhs, const glm::vec2& rhs)
{
return lhs.x + lhs.y < rhs.x + rhs.y;
}
Это мой tools.h
#pragma once
#include <gl/glew.h>
#include <SFML/Window.hpp>
#include <SFML/OpenGL.hpp>
#include <string>
#include <fstream>
#include <iostream>
#include <math.h>
#include <..\glm/glm.hpp>
#include <..\glm/vec4.hpp>
#include <..\glm/mat4x4.hpp>
#include <..\glm/trigonometric.hpp>
// Include GLM extensions
#include <..\glm/gtc/matrix_transform.hpp>
#include <..\glm/gtc/type_ptr.hpp>
#include <..\glm/gtc/matrix_transform.hpp>
using namespace glm;
using namespace std;
bool operator<(const glm::vec2& lhs, const glm::vec2& rhs);
#include <map>
Но это не исправляет мою ошибку, как я могу перегрузить оператор?