Opened 9 years ago

Last modified 9 years ago

#8766 new Bugs

is_iterator_category<Traversal> error

Reported by: olafvdspek@… Owned by: jeffrey.hellrung
Milestone: To Be Determined Component: iterator
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

VC12 Preview

1>  Unknown compiler version - please run the configure tests and report the results
1>c:\vc\include\boost\iterator\detail\facade_iterator_category.hpp(166): error C2039: 'assert_not_arg' : is not a member of 'boost::mpl'
1>          c:\vc\include\boost\mpl\eval_if.hpp(41) : see reference to class template instantiation 'boost::detail::facade_iterator_category_impl<CategoryOrTraversal,ValueParam,Reference>' being compiled
1>          with
1>          [
1>              CategoryOrTraversal=boost::forward_traversal_tag
1>  ,            ValueParam=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>  ,            Reference=const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &
1>          ]
1>          c:\vc\include\boost\iterator\detail\facade_iterator_category.hpp(193) : see reference to class template instantiation 'boost::mpl::eval_if<boost::detail::is_iterator_category<CategoryOrTraversal>,boost::mpl::identity<boost::forward_traversal_tag>,boost::detail::facade_iterator_category_impl<CategoryOrTraversal,ValueParam,Reference>>' being compiled
1>          with
1>          [
1>              CategoryOrTraversal=boost::forward_traversal_tag
1>  ,            ValueParam=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>  ,            Reference=const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &
1>          ]
1>          c:\vc\include\boost\iterator\iterator_facade.hpp(104) : see reference to class template instantiation 'boost::detail::facade_iterator_category<CategoryOrTraversal,ValueParam,Reference>' being compiled
1>          with
1>          [
1>              CategoryOrTraversal=boost::forward_traversal_tag
1>  ,            ValueParam=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>  ,            Reference=const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &
1>          ]
1>          c:\vc\include\boost\iterator\iterator_facade.hpp(620) : see reference to class template instantiation 'boost::detail::iterator_facade_types<Value,CategoryOrTraversal,Reference,Difference>' being compiled
1>          with
1>          [
1>              Value=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>  ,            CategoryOrTraversal=boost::forward_traversal_tag
1>  ,            Reference=const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &
1>  ,            Difference=ptrdiff_t
1>          ]
1>          c:\vc\include\boost\token_iterator.hpp(40) : see reference to class template instantiation 'boost::iterator_facade<boost::token_iterator<TokenizerFunc,Iterator,Type>,Type,boost::forward_traversal_tag,const Type &,ptrdiff_t>' being compiled
1>          with
1>          [
1>              TokenizerFunc=char_separator_type
1>  ,            Iterator=std::_String_const_iterator<std::_String_val<std::_Simple_types<char>>>
1>  ,            Type=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>          ]
1>          c:\vc\include\boost\date_time\date_parsing.hpp(132) : see reference to class template instantiation 'boost::token_iterator<TokenizerFunc,Iterator,Type>' being compiled
1>          with
1>          [
1>              TokenizerFunc=char_separator_type
1>  ,            Iterator=std::_String_const_iterator<std::_String_val<std::_Simple_types<char>>>
1>  ,            Type=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
1>          ]
1>          c:\vc\include\boost\date_time\gregorian\parsers.hpp(30) : see reference to function template instantiation 'date_type boost::date_time::parse_date<boost::gregorian::date>(const std::string &,int)' being compiled
1>          with
1>          [
1>              date_type=boost::gregorian::date
1>          ]

Change History (5)

comment:1 by Olaf van der Spek <ml@…>, 9 years ago

Jeffrey? VC12 RC hits the same issue

comment:2 by anonymous, 9 years ago

Eh, Jeffrey? SVN & 1.55 (beta) are affected too.

comment:3 by abyx@…, 9 years ago

BOOST_MPL_ASSERT[_FALSE] appears to be broken in VC12 - see #9249.

It seems that it's the actual issue here, and there is nothing wrong with the Boost.Iterator library.

comment:4 by Olaf van der Spek <ml@…>, 9 years ago

Trunk generates the same error for me

#include <boost/algorithm/string.hpp>

1>c:\vc\include\boost\iterator\iterator_concepts.hpp(42): error C2065: 'ReadableIterator' : undeclared identifier

in reply to:  4 comment:5 by abyx@…, 9 years ago

Replying to Olaf van der Spek <ml@…>:

Trunk generates the same error for me

#include <boost/algorithm/string.hpp>

1>c:\vc\include\boost\iterator\iterator_concepts.hpp(42): error C2065: 'ReadableIterator' : undeclared identifier

No, it's *another* error.

Just copy boost/mpl/assert.hpp from trunk to 1.55.0b1 and that code will compile.

Note: See TracTickets for help on using tickets.