std::indirect_equivalence_relation
From cppreference.com
| ヘッダ <iterator> で定義 |
||
| template< class F, class I1, class I2 = I1 > concept indirect_equivalence_relation = |
(C++20以降) | |
コンセプトindirect_equivalence_relationは、引数として等価性関係を呼び出すアルゴリズムの要件を指定します。std::equivalence_relationとの主な違いは、I1とI2自体ではなく、I1とI2が参照する型に適用されることです。
[編集] 欠陥報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| P2609R3 | C++20 | 一部の要件は std::iter_value_t<I>& の形で定義されていました。 プロジェクションの誤った処理により、等価性関係F&との互換性が損なわれた。 |
/*indirect-value-t*/<I> の形で定義されていました。 そのようなプロジェクションを正しく処理するため。 |
| P2997R1 | C++20 | indirect_equivalence_relationは、equivalence_relationを満たすF&を要求していました。std::iter_common_reference_t<I> |
要求しなくなった |