c++ - Do the new C++11 emplace methods make the previous C++98/03 push_back/insert methods obsolete? -
this question has answer here:
does still make sense in c++11 use vector::push_back() instead of vector::emplace_back(), , map::insert() instead of map::emplace()?
my understanding new modern c++11 emplace-methods construct objects in place given arguments (perfectly forwarded constructors), save copy , move operations, should more efficient old c++98/03 counterparts.
am missing that?
is safe discourage use of old-style methods?
as say, emplace_back meant construct objects. if have object , want copy or move inside container? why should call emplace_back create new instance, if can move existing object new instance?
both alternatives can useful, different purposes. emplace_back might able same push_back same performance, it's still cleaner show intent in code.
Comments
Post a Comment