constのstd::mapに対してoperator[]を呼び出すとコンパイルエラーになる
int f(const std::map<int, int>& m, int x) {
return m[x]; //=>コンパイルエラー
}
std::mapのoperator[]は次のように定義されていて、constメソッドではない。
Ty& operator[](const Key& keyval);
C++11ではat()メンバ関数がstd::mapに追加された。
次のようにコードを記述できる。
int f(const std::map<int, int>& m, int x) {
return m.at(x);
}
ちなみに、C++Builder XE5の64ビットコンパイラはC++11に対応しているが、32ビットコンパイラは対応していない。

C++Builder XE5 Professional ESD(ライセンスのみ) バージョンアップ
価格:62,000円(税込、送料込)