GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::tuple_size(3) C++ Standard Libary std::tuple_size(3)

std::tuple_size - std::tuple_size


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


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


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


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

// 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));
}


3
2


Defect reports


The following behavior-changing defect reports were applied retroactively 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


Structured binding (C++17) binds the specified names to sub-objects 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)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.