template<class F, class I1, class I2 = I1>
concept indirect_strict_weak_order =
std::indirectly_readable<I1> &&
std::indirectly_readable<I2> &&
std::copy_constructible<F> &&
std::strict_weak_order<F&, std::iter_value_t<I1>&, std::iter_value_t<I2>&> &&
std::strict_weak_order<F&, std::iter_value_t<I1>&, std::iter_reference_t<I2>> &&
std::strict_weak_order<F&, std::iter_reference_t<I1>, std::iter_value_t<I2>&> &&
std::strict_weak_order<F&, std::iter_reference_t<I1>, std::iter_reference_t<I2>> &&
std::strict_weak_order<F&, std::iter_common_reference_t<I1>, std::iter_common_reference_t<I2>>; |
|
(C++20 起) |
| | |
概念 indirect_strict_weak_order
指定调用作为其参数的严格弱序的算法的要求。此概念与 std::strict_weak_order 间的关键区别是它被应用到 I1
与 I2
所引用的类型,而非 I1
与 I2
自身。
语义要求
F
、 I1
与 I2
实现 indirect_strict_weak_order
仅若其所蕴含的概念均得以实现。