C++ 参考手册
- C++11
 - C++14
 - C++17
 - C++20
 - C++ 编译器支持情况表
 - 独立与宿主实现
 - C++ 语言
 - C++ 关键词
 - 预处理器
 - C++ 标准库头文件
 - 具名要求
 - 功能特性测试 (C++20)
 - 工具库
 - 类型支持(基本类型、RTTI、类型特性)
 - 概念库 (C++20)
 - 错误处理
 - 动态内存管理
 - 日期和时间工具
 - 字符串库
 - 容器库
 - 迭代器库
 - std::begin, std::cbegin
 - std::end, std::cend
 - std::next
 - std::reverse_iterator
 - std::rbegin, std::crbegin
 - std::indirectly_readable
 - std::indirectly_writable
 - std::weakly_incrementable
 - std::prev
 - std::move_iterator
 - std::size, std::ssize
 - std::empty
 - std::data
 - std::insert_iterator
 - std::rend, std::crend
 - std::incrementable
 - std::input_or_output_iterator
 - std::sentinel_for
 - std::sized_sentinel_for, std::disable_sized_sentinel_for
 - std::input_iterator
 - std::output_iterator
 - std::forward_iterator
 - std::bidirectional_iterator
 - std::random_access_iterator
 - std::contiguous_iterator
 - std::iterator_traits
 - std::input_iterator_tag, std::output_iterator_tag, std::forward_iterator_tag, std::bidirectional_iterator_tag, std::random_access_iterator_tag, std::contiguous_iterator_tag
 - std::iterator
 - std::incrementable_traits
 - std::indirectly_readable_traits
 - std::iter_value_t, std::iter_reference_t, std::iter_difference_t, std::iter_rvalue_reference_t, std::iter_common_reference_t
 - std::indirect_unary_invocable, std::indirectly_regular_unary_invocable
 - std::indirect_unary_predicate
 - std::indirect_binary_predicate
 - std::indirect_equivalence_relation
 - std::indirect_strict_weak_order
 - std::indirectly_movable
 - std::indirectly_movable_storable
 - std::indirectly_copyable
 - std::indirectly_copyable_storable
 - std::indirectly_swappable
 - std::indirectly_comparable
 - std::permutable
 - std::mergeable
 - std::sortable
 - std::indirect_result_t
 - std::projected
 - std::move_sentinel
 - std::back_insert_iterator
 - std::front_insert_iterator
 - std::make_reverse_iterator
 - std::make_move_iterator
 - std::default_sentinel_t, std::default_sentinel
 - std::unreachable_sentinel_t, std::unreachable_sentinel
 - std::back_inserter
 - std::front_inserter
 - std::inserter
 - std::istream_iterator
 - std::ostream_iterator
 - std::istreambuf_iterator
 - std::ostreambuf_iterator
 - std::advance
 - std::distance
 - 注释
 - 范围库 (C++20)
 - 算法库
 - 数值库
 - 输入/输出库
 - 文件系统库
 - 本地化库
 - 正则表达式库
 - 原子操作库
 - 线程支持库
 - 实验性 C++ 特性
 - 有用的资源
 - 索引
 - std 符号索引
 - 协程支持 (C++20)
 - C++ 关键词
 
std::indirect_unary_invocable, std::indirectly_regular_unary_invocable
concept indirectly_unary_invocable =
  std::indirectly_readable<I> &&
  std::copy_constructible<F> &&
  std::invocable<F&, iter_value_t<I>&> &&
  std::invocable<F&, iter_reference_t<I>> &&
  std::invocable<F&, iter_common_reference_t<I>> &&
  std::common_reference_with<
    std::invoke_result_t<F&, std::iter_value_t<I>&>,
  concept indirectly_regular_unary_invocable =
    std::indirectly_readable<I> &&
    std::copy_constructible<F> &&
    std::regular_invocable<F&, iter_value_t<I>&> &&
    std::regular_invocable<F&, iter_reference_t<I>> &&
    std::regular_invocable<F&, iter_common_reference_t<I>> &&
    std::common_reference_with<
      std::invoke_result_t<F&, std::iter_value_t<I>&>,
概念 indirectly_unary_invocable 与 indirectly_regular_unary_invocable 指定调用作为其实参的(正则)一元可调用对象的算法的要求。这些概念与 std::invocable 间的关键差异是它们应用到 I 所引用的类型,而非 I 自身。
语义要求
每个概念为 F 与 I 所实现,仅若其所蕴含的所有概念均得到实现。
注解
indirectly_unary_invocable 与 indirectly_regular_unary_invocable 间的区别是纯语义的。