std::contiguous_iterator_C++中文网

  concept contiguous_iterator =
    std::random_access_iterator<I> &&
    std::derived_from</*ITER_CONCEPT*/<I>, std::contiguous_iterator_tag> &&
    std::is_lvalue_reference_v<std::iter_reference_t<I>> &&
    std::same_as<
      std::iter_value_t<I>, std::remove_cvref_t<std::iter_reference_t<I>>
    > &&
    requires(const I& i) {
      { std::to_address(i) } ->
        std::same_as<std::add_pointer_t<std::iter_reference_t<I>>>;

   

};

abI 类型的可解引用迭代器, cI 类型的不可解引用迭代器,使得 ba 可抵达而 cb 可抵达。类型 I 实现 contiguous_iterator 仅若其所蕴含的所有概念均被实现,且:

使用不修改某 const 左值运算数的表达式的 requires 表达式亦隐式要求该表达式的额外变种对给定运算数接受非 const 左值或(可为 const 的)右值,除非以有区别的语义显式要求这种表达式变种。这些隐式表达式变种必须符合与声明的表达式的相同的语义。不指定实现以何种程度校验变种的语法。