Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

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>

home | help