0

次の情報を保持する Shader と呼ばれる構造体があります。

struct Shader {
    enum ValueType{ VT_Attribute, VT_Uniform, VT_Varying };
    GLuint Memory;
    GLenum Type;
    char* Source;
    char* Name;
    std::map< Shader::ValueType, float* > Values;
};

それでも、次のようなことをすると:

glShaderSource( shaderMem, 1, &shader.Source, NULL );

次のエラーが表示されます。

error: invalid conversion from 'char* const*' to 'const char**'

なぜこうなった?

4

1 に答える 1

4

shaderconstその時点であるために発生します。glShaderSource3 番目の引数の内容を書き込もうとしないと仮定すると、次const_castのことができconstます。

glShaderSource( shaderMem, 1, const_cast< char** >( &shader.Source ), NULL );
于 2012-05-21T02:28:40.293 に答える