以前に同じ質問をしましたがboost::assign::map_list_of
(回答はありませんでした)、ブレースの初期化を使用すると役立つかもしれないと思いましたが、そうではありませんでした。
これは完全に機能します:
std::map<int, char> m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};
しかし、これはしません:
std::map<int, char> m;
m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};
Visual Studio 2013 でエラーが発生します。またはのerror C2593: 'operator =' is ambiguous
いずれoperator=(std::initalizer_list)
かoperator=(std::map&&)
です。
2 番目のバージョンを動作させることは可能ですか? たとえば、m
がメンバー変数である場合。