'sqrt':对重载函数的不明确调用。\assimp\vector3.inl
'sqrt' : ambiguous call to overloaded function ..assimpvector3.inl
错误
错误C2668:"sqrt":对重载函数c:\program files\assimp\enclude\assimp\vector3.inl 的调用不明确
当我在主cpp文件中包含"scene.h"时发生:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
GLFWwindow* window;
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <assimp/Importer.hpp>
#include <assimp/scene.h>
#include <assimp/postprocess.h>
#define MESH_FILE "cube.obj"
using namespace glm;
#include "common/shader.hpp"
#include "common/controls.hpp"
我不明白这和什么冲突?
您在.cpp文件中有一个使用指令的命名空间:
using namespace glm;
这意味着glm
命名空间中的所有内容都成为"全局"命名空间的一部分;因此,污染了全局命名空间。
因此,标准的C sqrt()
函数(位于全局命名空间中(和您的glm::sqrt()
(被"提升"为全局sqrt
(之间可能存在某种形式的冲突。
您可能希望删除前面提到的命名空间using指令(当您希望引用该命名空间中的类和函数时,只需添加glm::
命名空间前缀(。
相关文章:
- 从C++本机插件更新Vector3数组
- Unity在虚幻引擎4中的"Vector3.Slerp"等效C++?
- exe_common.inl中的非法指令
- 对于C++ Vector3 实用程序类实现,数组是否比结构和类快?
- C :调试断言失败,AFX.Inl第122行
- 如何在 C# 中引用 .inl 和 .h 文件
- C++ 错误:调用'(Vector3 (double, double, double)'不匹配
- DirectX errors Vector3
- 模板参数的缩写(Vector3 而不是 Vector<3>)
- 在VS2012单元测试中创建和测试自定义MFC CEdit时,在第21行的afxwin1.inl中断言
- opencv错误:在文件:Mat.inl.hpp第930行的cv::Mat::中断言失败
- 这就是你如何正确计算Vector3 Transform和TransformCoordinate的方法吗?
- 如何在模板类中定义模板函数.inl文件
- 非常困惑的模板INL文件
- 'sqrt':对重载函数的不明确调用。\assimp\vector3.inl