Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::tuple_size<std::pair>

      From cppreference.com
      <cpp‎ |utility‎ |pair
       
       
      Utilities library
       
       
      Defined in header<utility>
      template<class T1,class T2>

      struct tuple_size<std::pair<T1, T2>>

         :std::integral_constant<std::size_t,2>{};
      (since C++11)

      The partial specialization ofstd::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.

      Contents

      Inherited fromstd::integral_constant

      Member constants

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

      Member functions

      operator std::size_t
      converts the object tostd::size_t, returnsvalue
      (public member function)
      operator()
      (C++14)
      returnsvalue
      (public member function)

      Member types

      Type Definition
      value_typestd::size_t
      typestd::integral_constant<std::size_t, value>

      [edit]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 timestd::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:

      32

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2313C++11specializations forpair were not required to be derived fromintegral_constantrequired

      [edit]See also

      Structured binding(C++17) binds the specified names to sub-objects or tuple elements of the initializer[edit]
      (C++11)
      obtains the number of elements of a tuple-like type
      (class template)[edit]
      obtains the size of anarray
      (class template specialization)[edit]
      obtains the size of

      atuple
      (class template specialization)[edit]

      obtains the size of astd::ranges::subrange
      (class template specialization)[edit]
      obtains the type of the elements ofpair
      (class template specialization)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/pair/tuple_size&oldid=166806"

      [8]ページ先頭

      ©2009-2025 Movatter.jp