0

我有以下结构。

struct ShaderObject
{
    const GLchar* File;
    ShaderType Type;
    GLuint Shader;
    ShaderObject(const GLchar* File, ShaderType Type);
};

还有这种类型的地图。

typedef map<string, ShaderObject> Shaders;

编译器给了我一个错误,链接到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

我不明白这个错误。我该如何解决?因为我以前从未遇到过这样的错误并且我无法解释,所以我不确定您需要哪些信息。请随时询问详情!非常感谢!

4

1 回答 1

6

如果你想把ShaderObject它放在std::map. 这样做的原因是,如果您将operator[]onmap用于不存在的键,它将自动插入该键和一个 ShaderObject的作为值。它将使用默认构造函数来创建此对象。

于 2012-08-25T17:55:18.853 回答