C++ Странная ошибка циклической зависимости
Когда я пытаюсь скомпилировать мой код, он выдает 66 ошибок, и все ошибки примерно mat4.h
ошибки (повторяющиеся строки). Я пытался включить охранников, #pragma once
,
Код
mat4.h
#pragma once
#include "vec3.h"
#include "vec4.h"
#include "maths_func.h"
namespace sparky { namespace maths {
struct mat4
{
union
{
float elements[4 * 4];
vec4 columns[4];
};
mat4();
mat4(float diagonal);
static mat4 identity();
mat4& multiply(const mat4& other);
friend mat4 operator*(mat4 left, const mat4& right);
mat4& operator*=(const mat4& other);
mat4& Invert();
static mat4 orthographic(float left, float right, float bottom, float top, float near, float far);
static mat4 perspective(float fov, float aspectRatio, float near, float far);
static mat4 translation(const vec3& translation);
static mat4 rotation(float angle, const vec3& axis);
static mat4 scale(const vec3& scale);
};
} }
Файл mat4.cpp слишком большой, поэтому я выложу его на pastebin. https://pastebin.com/FYSZV9ZX
1 ответ
Решение
Ваши заголовки vec3 и vec4 включают mat4?
Если да и это не нужно, то удалите это.