ericniebler / range-v3

Range library for C++14/17/20, basis for C++20's std::ranges
Other
4.06k stars 437 forks source link

Why Is Custom contiguous_iterator_tag Is Used? #1677

Open sergegers opened 2 years ago

sergegers commented 2 years ago
    using input_iterator_tag = std::input_iterator_tag;
    using forward_iterator_tag  = std::forward_iterator_tag;
    using bidirectional_iterator_tag = std::bidirectional_iterator_tag;
    using random_access_iterator_tag = std::random_access_iterator_tag;

    struct contiguous_iterator_tag : std::random_access_iterator_tag
    {};

The code above is from iterator/traits.hpp. Is custom tag used to support C++17 standard? The custom tag breaks STL interop (for example std::string_view) so, may be better drop C++17 support and steal contiguous_iterator_tag from STL? @ericniebler what do you think?

JohelEGP commented 2 years ago

See #1472 and #1565.