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

FreeBSD Manual Pages

  
 
  

home | help
std::tuple_size(3)	      C++ Standard Libary	    std::tuple_size(3)

NAME
       std::tuple_size - std::tuple_size

Synopsis
	  Defined in header <utility>
	  template <class T1, class T2>

	  struct tuple_size<std::pair<T1, T2>>		 (since	C++11)

	  : std::integral_constant<std::size_t,	2> { };

	  The  partial	specialization of std::tuple_size for pairs provides a
       compile-time way
	  to obtain the	number of elements in a	pair, which is always 2, using
       tuple-like
	  syntax.

       Inherited from std::integral_constant

Member constants
	  value	   the constant	value 2
	  [static] (public static member constant)

Member functions
	  operator std::size_t converts	the  object  to	 std::size_t,  returns
       value
			       (public member function)
	  operator()	       returns value
	  (C++14)	       (public member function)

Member types
	  Type	     Definition
	  value_type std::size_t
	  type	     std::integral_constant<std::size_t, value>

Example
       // Run this code

	#include <iostream>
	#include <utility>
	#include <tuple>

	template<class T>
	void test(T t)
	{
	    int	a[std::tuple_size<T>::value]; // can be	used at	compile	time
	    std::cout << std::tuple_size<T>::value << '\n'; // or at run time
	}

	int main()
	{
	    test(std::make_tuple(1, 2, 3.14));
	    test(std::make_pair(1, 3.14));
	}

Output:
	3
	2

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	      Applied	 to		    Behavior	as   published
       Correct behavior
	  LWG 2313 C++11      specializations for pair were  not  required  to
       required
			      be derived from integral_constant

See also
	  Structured  binding  (C++17)	  binds	the specified names to sub-ob-
       jects or	tuple
					elements of the	initializer
	  std::tuple_size<std::tuple>	obtains	the size of tuple  at  compile
       time
	  (C++11)			(class template	specialization)
	  std::tuple_size<std::array>	obtains	the size of an array
	  (C++11)			(class template	specialization)
	  std::tuple_element<std::pair>	 obtains  the  type of the elements of
       pair
	  (C++11)			(class template	specialization)

http://cppreference.com		  2022.07.31		    std::tuple_size(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::tuple_size&manpath=FreeBSD+Ports+15.0>

home | help