Quick Q: How do I move an expensive object into a map? -- StackOverflow
Quick A: Using the form of insert
that takes an rvalue and passing a temporary or a std::move
'd object, or calling emplace
.
Moving an object into a map
The problem with this is that the huge objects will be copied into the maps
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});how can I guarantee a move? Will this work or is there more to it?
map1.insert({0,std::move(huge1)}); map2.insert({std::move(huge2),0});