2
私は同じ質問をbefore約boost::assign::map_list_of
(これは答えられませんでした)としましたが、おそらく括弧の初期化を使用すると助けになると思いました。std :: map :: operator =イニシャライザリストの使用方法
これは完璧に動作します:
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
がメンバー変数の場合
だから、問題は、あなたがこれをコンパイルするのVisual C++ 2015にアップグレードすることができないということですちょうどいい? –
@ChristianHacklは情報に感謝しますが、私が働いている場所では通常、他のバージョンのVisual Studioはスキップします。 :( –
悪運、その後:) –