Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::indirect_equivalence_relation

      From cppreference.com
      <cpp‎ |iterator
       
       
      Iterator library
      Iterator concepts
      Iterator primitives
      Algorithm concepts and utilities
      Indirect callable concepts
      indirect_equivalence_relation
      (C++20)
      Common algorithm requirements
      (C++20)
      (C++20)
      (C++20)
      Utilities
      (C++20)
      Iterator adaptors
      Range access
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++17)(C++20)
      (C++17)
      (C++17)
       
      Defined in header<iterator>
      template<class F,class I1,class I2= I1>

      concept indirect_equivalence_relation=
         std::indirectly_readable<I1>&&
         std::indirectly_readable<I2>&&
         std::copy_constructible<F>&&
         std::equivalence_relation
             <F&,/*indirect-value-t*/<I1>,/*indirect-value-t*/<I2>>&&
         std::equivalence_relation
             <F&,/*indirect-value-t*/<I1>,std::iter_reference_t<I2>>&&
         std::equivalence_relation
             <F&,std::iter_reference_t<I1>,/*indirect-value-t*/<I2>>&&
         std::equivalence_relation

             <F&,std::iter_reference_t<I1>,std::iter_reference_t<I2>>;
      (since C++20)

      The conceptindirect_equivalence_relation specifies requirements for algorithms that call equivalence relations as their arguments. The key difference between this concept andstd::equivalence_relation is that it is applied to the types thatI1 andI2 references, rather thanI1 andI2 themselves.

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      P2609R3C++20some requirements were defined in terms ofstd::iter_value_t<I>&
      which mishandled projections resulting in incompatibility with equivalence relationF&
      defined in terms of/*indirect-value-t*/<I>
      to correctly handle such projections
      P2997R1C++20indirect_equivalence_relation requiredF& to satisfyequivalence_relation with
      std::iter_common_reference_t<I>
      does not require
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/indirect_equivalence_relation&oldid=175480"

      [8]ページ先頭

      ©2009-2025 Movatter.jp