Hi,
if the test app below does not use adaptor strided in the for-range loop it works.
If the adaptors is used the app fails with:
../../../../../boost/range/adaptor/strided.hpp: In instantiation of ‘boost::range_detail::strided_range<Rng, Category>::strided_range(Difference, Rng&) [with Difference = int; Rng = foo::X<int>; Category = boost::iterators::single_pass_traversal_tag]’:
../../../../../boost/range/adaptor/strided.hpp:656:54: required from ‘boost::range_detail::strided_range<Rng> boost::range_detail::operator|(Rng&, const boost::range_detail::strided_holder<Difference>&) [with Rng = foo::X<int>; Difference = int; typename boost::iterators::pure_iterator_traversal<typename boost::range_iterator<C>::type>::type = boost::iterators::single_pass_traversal_tag]’
fibonacci.cpp:188:50: required from here
../../../../../boost/range/adaptor/strided.hpp:631:34: error: no matching function for call to ‘make_begin_strided_iterator(foo::X<int>&, int&, boost::mpl::eval_if<boost::is_convertible<std::input_iterator_tag, boost::iterators::incrementable_traversal_tag>, boost::mpl::identity<std::input_iterator_tag>, boost::iterators::detail::old_category_to_traversal<std::input_iterator_tag> >::type)’
>::type()),