Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::common_comparison_category

      From cppreference.com
      <cpp‎ |utility
       
       
      Utilities library
       
      Defined in header<compare>
      template<class...Ts>

      struct common_comparison_category
      {
         using type=/* see below */;

      };
      (since C++20)

      The class templatestd::common_comparison_category provides an alias (as the member typedeftype) for the strongest comparison category to which all of the template argumentsTs... can be converted.

      In detail, the common comparison type of a list of n typesT0...Tn-1 is defined as follows:

      Contents

      [edit]Template parameters

      ...Ts - a possibly empty list of types

      [edit]Helper template

      template<class...Ts>
      using common_comparison_category_t= common_comparison_category<Ts...>::type;
      (since C++20)

      [edit]Member types

      Member type Definition
      type the strongest common comparison category (as defined above)

      [edit]Possible implementation

      namespace detail{template<unsignedint>struct common_cmpcat_base{using type=void;};template<>struct common_cmpcat_base<0u>{using type=std::strong_ordering;};template<>struct common_cmpcat_base<2u>{using type=std::partial_ordering;};template<>struct common_cmpcat_base<4u>{using type=std::weak_ordering;};template<>struct common_cmpcat_base<6u>{using type=std::partial_ordering;};}// namespace detail template<class...Ts>struct common_comparison_category:    detail::common_cmpcat_base<(0u| ...|(std::is_same_v<Ts,std::strong_ordering>? 0u:std::is_same_v<Ts,std::weak_ordering>? 4u:std::is_same_v<Ts,std::partial_ordering>? 2u: 1u))>{};

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]See also

      the result type of 3-way comparison that supports all 6 operators and is substitutable
      (class)[edit]
      the result type of 3-way comparison that supports all 6 operators and is not substitutable
      (class)[edit]
      the result type of 3-way comparison that supports all 6 operators, is not substitutable, and allows incomparable values
      (class)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/compare/common_comparison_category&oldid=170995"

      [8]ページ先頭

      ©2009-2025 Movatter.jp