Вы не можете использовать символ ":" в левой части #DEFINE (часть "name"). Но это разрешено в правой части («значение»)
Итак, попробуйте это:
#define GLM_QUAT glm::gtc::quaternion::quat
class Camera
{
protected:
GLM_QUAT m_mRotation;
};
Помните, что #DEFINE - это просто макрос предварительной компиляции в форме пары "имя-значение". Левая часть имеет те же правила, что и имя переменной, а правая часть может быть любой. Это просто текст, который компилятор заменяет в вашем коде перед любой проверкой компиляции / синтаксиса.
Кстати, я настоятельно предлагаю вам использовать UPPER_CAPS в ваших именах #DEFINE, чтобы вы могли легко обнаружить их в своем коде, что позволяет избежать путаницы при отладке кода. Вы НЕ хотите неправильно понимать его как переменную или тип. Заглавные буквы помогают вам понять, что это макрос.