dan*_*jar 0 c++ compiler-construction struct typedef map
我有以下结构.
struct ShaderObject
{
const GLchar* File;
ShaderType Type;
GLuint Shader;
ShaderObject(const GLchar* File, ShaderType Type);
};
Run Code Online (Sandbox Code Playgroud)
而这种类型的地图.
typedef map<string, ShaderObject> Shaders;
Run Code Online (Sandbox Code Playgroud)
编译器给我一个错误,链接到执行map.
Error 1 error C2512: 'ShaderObject::ShaderObject': No appropriate default constructor
available c:\program files (x86)\microsoft visual studio 11.0\vc\include\map 198 1
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误.我该如何解决?因为我以前从来没有这样的错误,我无法解释,我不确定你需要哪些信息.请随时询问详情!非常感谢!
ShaderObject如果要将其置于内部,则需要提供默认构造函数(可以不带参数调用的构造函数)std::map.原因是,如果您使用operator[]on map来存在不存在的密钥,它将自动插入该密钥并将新 ShaderObject值作为值.它将使用默认构造函数来创建此对象.
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |