3

の値を変更するのではなく、単に返そうとしていstd::mapます。それconstは機能しますが、関数を配置すると、当然のことながらエラーが発生しますNo viable overloaded operator[] for type 'const std::map。私のコードは次のとおりです。

GLuint getCurrentColorAttribute() const {
    return m_programs[m_currentActiveProgram].attributes["SourceColor"];
}

私のIDEのエラーの画像は次のとおりです。 ここに画像の説明を入力

4

1 に答える 1

5

[]演算子はstd::map(const存在しない場合にマップに新しいエントリを作成できるため) ではないため、const関数から呼び出すことはできません。

at代わりに使用できますC++11

return m_programs.at(m_currentActiveProgram).attribute["SourceColor"];

于 2013-04-04T02:57:02.730 に答える