私は次のものを持っているとします:
boost::unordered_map< string , someValueType > map;
someValueType& value = map[ "key" ] = someValueType();
最後の行には次が含まれます。
- の一時的に構築されたインスタンス
someValueType
- 新しいマップ エントリへの一時的な割り当て
- マップ エントリへの参照の初期化
したがって、次の行が次の場合:
value.someProperty = 42;
これはマップエントリを正しく変更しようとしますか? 元の一時的ではありませんか?
この場合、非 const であるために参照が一時的に取得できないかどうかはわかっています (したがって、コンパイラ エラーまたは 1 つがない場合、私の質問に答えることができます) が、const を参照宣言に追加した場合、そうではありませんこの場合、評価ルールが何を言うかを確認してください