問題にオブジェクトを移動すると、巨大な物体が、私は動きを保証することができますどのようにマップ マップこれに
Huge huge1(some,args);
Huge huge2(some,args);
std::map<int,Huge> map1;
std::map<Huge,int> map2;
map1.insert({0,huge1});
map2.insert({huge2,0});
にコピーされることがありますか?これはうまくいくのでしょうか、それともそれ以上はありますか?
std::pair<iterator,bool> insert(value_type&&);
R値コンストラクタを呼び出すこの過負荷に特異的に結合する任意の式:
map1.insert({0,std::move(huge1)});
map2.insert({std::move(huge2),0});
私はこの数日前に正確に尋ねました:http://stackoverflow.com/questions/14581414/insert-map-entry-by-r-value-moving-of-mapped-type – Chowlett
全く同じことではありませんが、 @Chowlett。 – Yakk
@Yakk - ...キータイプは移動可能なので、コピーを確実にする必要があります。あるいは私は何か他のものを逃していますか – Chowlett