[Boost-bugs] [Boost C++ Libraries] #9801: I can no longer create and iterator_range from a stable_vector

Subject: [Boost-bugs] [Boost C++ Libraries] #9801: I can no longer create and iterator_range from a stable_vector
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-03-20 21:01:43


#9801: I can no longer create and iterator_range from a stable_vector
-----------------------------------------+------------------------
 Reporter: Joseph Southwell <joseph@…> | Owner: neilgroves
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: range
  Version: Boost Release Branch | Severity: Regression
 Keywords: |
-----------------------------------------+------------------------
 {{{
 modular boost master
 boost range at fa629a53bd7bcbd8a09520c5f5b016cd8647de18
 boost container at 7ca156661fb1b8455362f639975459f0825ea75c
 Visual Studio 2013
 }}}
 {{{
 #!cpp
 #include <boost/container/stable_vector.hpp>
 #include <boost/range/iterator_range.hpp>

 typedef boost::container::stable_vector<int> stack_type;
 typedef boost::iterator_range<stack_type::iterator> stack_range;

 int _tmain(int argc, _TCHAR* argv[])
 {
    stack_type stack;
    stack_range(stack.begin(), stack.end());
         return 0;
 }
 }}}
 {{{
 1> ConsoleApplication6.cpp
 1>c:\development\modular-boost\boost\range\mutable_iterator.hpp(35): error
 C2146: syntax error : missing ';' before identifier 'type'
 1> c:\development\modular-
 boost\boost\range\mutable_iterator.hpp(42) : see reference to class
 template instantiation
 'boost::range_detail::extract_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>,void>' being compiled
 1> c:\development\modular-
 boost\boost\range\has_range_iterator.hpp(27) : see reference to class
 template instantiation
 'boost::range_mutable_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>' being compiled
 1> c:\development\modular-boost\boost\mpl\eval_if.hpp(41) : see
 reference to class template instantiation
 'boost::range_detail::has_type<boost::range_mutable_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>,boost::mpl::bool_<false>>' being compiled
 1> c:\development\modular-
 boost\boost\range\has_range_iterator.hpp(73) : see reference to class
 template instantiation
 'boost::mpl::eval_if<boost::is_const<boost::container::stable_vector_detail::iterator<int
 *,false>>,boost::range_detail::has_type<boost::range_detail::range_const_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>,boost::mpl::bool_<false>>,boost::range_detail::has_type<boost::range_mutable_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>,boost::mpl::bool_<false>>>' being compiled
 1> c:\development\modular-boost\boost\mpl\if.hpp(63) : see
 reference to class template instantiation
 'boost::has_range_iterator<Source>' being compiled
 1> with
 1> [
 1>
 Source=boost::container::stable_vector_detail::iterator<int *,false>
 1> ]
 1> c:\development\modular-boost\boost\mpl\eval_if.hpp(40) : see
 reference to class template instantiation 'boost::mpl::if_<C,F1,F2>' being
 compiled
 1> with
 1> [
 1>
 C=boost::has_range_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>
 1> ,
 F1=boost::range_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>>
 1> , F2=boost::mpl::identity<void>
 1> ]
 1> c:\development\modular-
 boost\boost\range\iterator_range_core.hpp(400) : see reference to class
 template instantiation
 'boost::mpl::eval_if<boost::has_range_iterator<Source>,boost::range_iterator<Source>,boost::mpl::identity<void>>'
 being compiled
 1> with
 1> [
 1>
 Source=boost::container::stable_vector_detail::iterator<int *,false>
 1> ]
 1> c:\development\modular-boost\boost\utility\enable_if.hpp(36) :
 see reference to class template instantiation
 'boost::iterator_range<boost::container::stable_vector_detail::iterator<int
 *,false>>::is_compatible_range<boost::container::stable_vector_detail::iterator<int
 *,false>>' being compiled
 1> c:\users\jsouthwell\documents\visual studio
 2013\projects\consoleapplication6\consoleapplication6\consoleapplication6.cpp(15)
 : see reference to class template instantiation
 'boost::enable_if<boost::iterator_range<boost::container::stable_vector_detail::iterator<int
 *,false>>::is_compatible_range<boost::container::stable_vector_detail::iterator<int
 *,false>>,void>' being compiled
 1>c:\development\modular-boost\boost\range\mutable_iterator.hpp(35): error
 C3254:
 'boost::range_detail::extract_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>,void>' : class contains explicit override '{ctor}' but does not
 derive from an interface that contains the function declaration
 1>c:\development\modular-boost\boost\range\mutable_iterator.hpp(35): error
 C2838: '{ctor}' : illegal qualified name in member declaration
 1>c:\development\modular-boost\boost\range\mutable_iterator.hpp(35): error
 C2461:
 'boost::range_detail::extract_iterator<boost::container::stable_vector_detail::iterator<int
 *,false>,void>' : constructor syntax missing formal parameters
 1>c:\development\modular-boost\boost\range\mutable_iterator.hpp(35): error
 C4430: missing type specifier - int assumed. Note: C++ does not support
 default-int
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9801>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC