为什么指针的 std::iterator_traits::iterator_category 不是 std::contiguous_iterator_tag?

Why is the std::iterator_traits::iterator_category for pointers not std::contiguous_iterator_tag?

提问人:Jan Schultke 提问时间:10/14/2023 更新时间:10/14/2023 访问量:40

问:

iterator_traits专门用于指针

namespace std {
  template<class T>
    requires is_object_v<T>
  struct iterator_traits<T*> {
    using iterator_concept  = contiguous_iterator_tag;
    using iterator_category = random_access_iterator_tag;
    using value_type        = remove_cv_t<T>;
    using difference_type   = ptrdiff_t;
    using pointer           = T*;
    using reference         = T&;
  };
}

- [迭代器特征] 第 5 页

为什么只有 for 指针而不是 for 指针是 . 据我所知,指针在任何意义上都是连续的迭代器。iterator_conceptiterator_categorystd::contiguous_iterator_tag

这是疏忽,还是有实际原因?

C++ 语言-设计 迭代器-特征

评论


答: 暂无答案