class Item { };
class Wrapper
{
Item i;
Wrapper(const Item& mI) : i{mI} { }
Wrapper(Item&& mI) : i{std::move(mI)} { }
};
Item createItem()
{
Item result;
return result;
}
Wrapper createWrapper()
{
Wrapper result{createItem()};
return result;
}
createItem()works efficiently without a call std::move.
createWrapper()uses the return value createItem()and wants to call the constructor Wrapper::Wrapper(Item&&).
Should I use Wrapper result{std::move(createItem())};or will it be Wrapper result{createItem()};enough?
source
share