Vit*_*meo 4 c++ move return-value move-semantics c++11
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; // No `std::move` needed here
}
Wrapper createWrapper()
{
    Wrapper result{createItem()}; // `std::move(createItem())` ?
    return result;
}
createItem()无需致电即可高效返回std::move.
createWrapper()使用返回值createItem()并希望调用Wrapper::Wrapper(Item&&)构造函数.
是否有必要使用Wrapper result{std::move(createItem())};或Wrapper result{createItem()};足够?