std::indirect_equivalence_relation
Определено в заголовке <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&, std::iter_value_t<I1>&, std::iter_value_t<I2>&> &&
std::equivalence_relation<F&, std::iter_value_t<I1>&, std::iter_reference_t<I2>> &&
std::equivalence_relation<F&, std::iter_reference_t<I1>, std::iter_value_t<I2>&> &&
std::equivalence_relation<F&, std::iter_reference_t<I1>, std::iter_reference_t<I2>> &&
std::equivalence_relation<F&, std::iter_common_reference_t<I1>,
std::iter_common_reference_t<I2>>;
| (с C++20) |
Концепция indirect_equivalence_relation задает требования к алгоритмам, использующим отношения эквивалентности в качестве аргументов. Ключевое различие между этой концепцией и std::equivalence_relation заключается в том, что она применяется к типам, на которые I1 и I2 ссылаются, а не к I1 и I2 самим по себе.
Семантические требования
F, I1, и I2 моделируют indirect_equivalence_relation только если моделируются все концепции, которые она включает.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/indirect_equivalence_relation