# std::indirect_strict_weak_order

< cpp‎ | iterator

定义于头文件 `<iterator>` |  |
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` 仅若其所蕴含的概念均得以实现。