Пространство имен glm имеет псевдоним math с псевдонимами для конкретных экземпляров. Например
Код: Выделить всё
namespace math = glm;
using short4 = math::vec;
Теперь у меня есть файл для каждого glm::vec< /код> :
Код: Выделить всё
vector4.hКод: Выделить всё
vector3.hКод: Выделить всё
#ifndef SRC_COMMON_VECTOR4_H
#define SRC_COMMON_VECTOR4_H
#include
#include
namespace glm {
extern template struct qua;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
extern template struct vec;
}
namespace raid
{
namespace math = glm;
using quat = math::qua;
using float4 = math::vec4;
using longlong4 = math::vec;
using long4 = math::vec;
using int4 = math::vec;
using ulonglong4 = math::vec;
using ulong4 = math::vec;
using uint4 = math::vec;
using short4 = math::vec;
using ushort4 = math::vec;
using byte4 = math::vec;
using ubyte4 = math::vec;
} // namespace raid
#endif// SRC_COMMON_VECTOR4_H
Код: Выделить всё
#include "common/vector4.h"
namespace glm {
template struct qua;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
template struct glm::vec;
}

Я хотел бы сократить время компиляции на избегая создания экземпляров в другие файлы, кроме VectorN.cpp. Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-template
Мобильная версия