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[]に onを使用すると、そのキーとnewが値として自動的に挿入されるためです。デフォルトのコンストラクターを使用して、このオブジェクトを作成します。map ShaderObject

于 2012-08-25T17:55:18.853 に答える