C++ & GLM: 名称后跟 :: 必须是类或命名空间名称 (Visual Studio 2015)

C++ & GLM: name followed by :: must be a class or namespace name (Visual Studio 2015)

本文关键字:命名空间 Visual Studio 2015 GLM C++      更新时间:2023-10-16

我确信我已经正确设置了一切,但一定有什么我错过了。我已经包括了我所有的标题,如:

#include<glm/glm.hpp>
#include<glm/gtc/matrix_transform.hpp>
#include<glm/gtc/type_ptr.hpp>
#include<glm/gtc/quaternion.hpp>

据我所知,所有这些都是有效的,因为它们自己,代码编译。但是当我试着写下面的代码时:

glm::mat4 view = glm::gtc::quaternion::mat4_cast(qview);

我在'gtc'上得到一个错误:"Name后面跟着::必须是一个类或命名空间的名称"

我到底错过了什么?我是否使用了错误的名称空间?它与文档中所说的匹配:http://glm.g-truc.net/0.9.0/api/a00135.html#ae2d14d52f9fef3da00cf867f9e2e3dfa

顺便说一句,如果我想做的"逻辑"是错误的(像这样分配一个mat4的值),请忽略它:当我得到它时,我会解决这个问题。现在我只是试图诊断这个问题与名称空间

好吧,原来我引用了错误的文档版本。我使用的是0.9.7版本,我查看的文档是0.9.0。我试图使用的函数在这两个版本之间被移动到glm名称空间,如果我执行

,则工作正常。
glm::mat4_cast(qview);