FreeBSD Manual Pages
std::forward_as_tuple(3) C++ Standard Libary std::forward_as_tuple(3) NAME std::forward_as_tuple - std::forward_as_tuple Synopsis Defined in header <tuple> template< class... Types > (since C++11) tuple<Types&&...> forward_as_tuple( Types&&... args ) (const- expr since C++14) noexcept; Constructs a tuple of references to the arguments in args suitable for forwarding as an argument to a function. The tuple has rvalue reference data mem- bers when rvalues are used as arguments, and otherwise has lvalue reference data mem- bers. Parameters args - zero or more arguments to construct the tuple from Return value A std::tuple object created as if by std::tuple<Types&&...>(std::forward<Types>(args)...) Notes If the arguments are temporaries, forward_as_tuple does not extend their lifetime; they have to be used before the end of the full expression. Example // Run this code #include <iostream> #include <map> #include <tuple> #include <string> int main() { std::map<int, std::string> m; m.emplace(std::piecewise_construct, std::forward_as_tuple(10), std::forward_as_tuple(20, 'a')); std::cout << "m[10] = " << m[10] << '\n'; // The following is an error: it produces a // std::tuple<int&&, char&&> holding two dangling references. // // auto t = std::forward_as_tuple(20, 'a'); // m.emplace(std::piecewise_construct, std::forward_as_tuple(10), t); } Output: m[10] = aaaaaaaaaaaaaaaaaaaa See also make_tuple creates a tuple object of the type defined by the argu- ment types (C++11) (function template) tie creates a tuple of lvalue references or unpacks a tuple into individual (C++11) objects (function template) tuple_cat creates a tuple by concatenating any number of tuples (C++11) (function template) apply calls a function with a tuple of arguments (C++17) (function template) http://cppreference.com 2022.07.31 std::forward_as_tuple(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::forward_as_tuple&sektion=3&manpath=FreeBSD+Ports+15.0>
