Недавно я узнал, что ForwardIterator s требует operator *
для возврата по ссылке, что означает, что итераторы, которые возвращают прокси, такие как std::vector<bool>
, не могут быть ForwardIterator s ( [forward.iterators] ).
Однако я протестировал std::iterator_traits<std::vector<bool>::iterator>::iterator_category
в разных компиляторах ( G ++ , Clang , MSVC ) и это всегда было std::random_access_iterator_tag
.Это соответствует вышеуказанному требованию?