Opened 8 years ago
Last modified 8 years ago
#9984 new Bugs
range iterator failing to model forward_iterator
Reported by: | Owned by: | jeffrey.hellrung | |
---|---|---|---|
Milestone: | To Be Determined | Component: | iterator |
Version: | Boost 1.55.0 | Severity: | Problem |
Keywords: | clang | Cc: | flast@… |
Description
The following code snippet passes successfully with GCC 4.9, but Clang 3.5 (installed from MacPorts) fails to accept std::next.
The symptoms are somewhat alike #9431, but I have no idea if it's the same issue. According to the code of irange, I guess the problem is rather with Boost.Iterator.
$ cat bar.cc #include <boost/range/irange.hpp> int main() { auto range = boost::irange<int>(0, 10); auto i = std::begin(range); auto j = std::next(i); std::cerr << *j << std::endl; } $ clang++-mp-3.5 -std=c++11 -I /opt/local/include bar.cc bar.cc:7:12: error: no matching function for call to 'next' auto j = std::next(i); ^~~~~~~~~ /opt/local/libexec/llvm-3.5/bin/../include/c++/v1/iterator:514:25: note: candidate template ignored: disabled by 'enable_if' [with _ForwardIter = boost::range_detail::integer_iterator<int>] typename enable_if<__is_forward_iterator<_ForwardIter>::value>::type* = 0) ^ 1 error generated. $ g++-mp-4.9 -std=c++11 -I /opt/local/include bar.cc
Note:
See TracTickets
for help on using tickets.
It seems that is already fixed in 1.56.
Here are results with online compiler.
1.55: ttp://melpon.org/wandbox/permlink/5XdQJxBGeriugOHI
1.56: ttp://melpon.org/wandbox/permlink/M7c7ohFJXA69MAFw
(trac rejects
http://
as a spam ...)