-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vec_iterator member typedef iterator_concept should only be defined in C++20 #195
Comments
…ould only be defined in C++20")
…ould only be defined in C++20")
…ould only be defined in C++20")
I've tried to detect if the standard library defines std::contiguous_iterator_tag in commit before forward declaring it in the commit: and then, following your suggestion, defined vec_iterator::iterator_concept when std::contiguous_iterator tag it's defined: Let me know if this fix helps with the issue. |
…ould only be defined in C++20")
I've just checked that with the mentioned commits on Boost.Move and Boost.Container makes range-v3 happy with boost::container::vector in C++17 and C++20 modes. |
Hello,
After upgrading Boost to 1.77.0, I had compiler errors when trying to combine
boost::container::flat_map
andrange-v3
.I'm using apple-clang 13, in C++17 mode.
vec_iterator
added the following line, with no#ifdef
around:typedef std::contiguous_iterator_tag iterator_concept;
Problem is that
std::contiguous_iterator_tag
is only defined in C++20, and it relies on a forward declaration found inboost/move/detail/iterator_traits.hpp
(which is illegal IIRC).Since
range-v3
provides emulated concepts, it has to check the inheritence hierarchy of these tags, which requires them to be defined. As it makes use ofiterator_concept
the compiler is not happy:The text was updated successfully, but these errors were encountered: