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...
contiguous_iterator_tag corresponds to contiguous_iterator. If iterator_concept is not provided, iterator_category is used as a fallback. If iterator_category is not provided either (i.e. It is not a LegacyIterator), and std::iterator_traits<It> is not specialized, random_access_iterator_ta...
vector's iterator should provide a std::iterator_traits specialization with iterator_concept = std::contiguous_iterator_tag if it's available. Otherwise, it is for example unusable with std::span if you pass it as a range. jmelasmentioned this issueMar 24, 2021 ...
std::same_as<std::add_pointer_t<std::iter_reference_t<I>>>; }; (C++20 起) contiguous_iterator概念细化random_access_iterator,通过提供代表的元素连续存储于内存中的保证。 迭代器概念确定 此概念的定义通过仅用于阐释的别名模板/*ITER_CONCEPT*/说明。
concept成员类型别名,该别名允许别名std::contiguous_iterator_tag或以前的迭代器标记。