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.

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 <tuple>
	#include <utility>

	template<class T>
	void test([[maybe_unused]]T t)
	{
	    [[maybe_unused]]
	    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-objects or
						 tuple elements	 of  the  ini-
       tializer
	  tuple_size				  obtains  the	number of ele-
       ments of	a
	  (C++11)				 tuple-like type
						 (class	template)
	  std::tuple_size<std::array>		 obtains the size of an	array
	  (C++11)				 (class	 template  specializa-
       tion)
	  std::tuple_size<std::tuple>		  obtains the size of tuple at
       compile time
	  (C++11)				 (class	 template  specializa-
       tion)
	  std::tuple_size<std::ranges::subrange>  obtains the number of	compo-
       nents of	a
	  (C++20)				 std::ranges::subrange
						 (class	 template  specializa-
       tion)
	  std::tuple_element<std::pair>		  obtains the type of the ele-
       ments of	pair
	  (C++11)				 (class	 template  specializa-
       tion)

http://cppreference.com		  2024.06.10		    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&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help