Whats up with std::piecewise_construct and std::forward_as_tuple . . . auto values = std::forward_as_tuple(x, std::string(L"hello")); std::get<1>(values); dangling reference to destructed string The purpose of std::forward_as_tuple is to wrap up a bunch of parameters, probably a parameter pack, into a single object that can be passed as a single non-pack parameter This is handy if you need to work with a