Opened 8 years ago
Last modified 8 years ago
#11187 new Bugs
size function causing hard errors in unrelated code
| Reported by: | Eric Niebler | Owned by: | Neil Groves |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | range |
| Version: | Boost Development Trunk | Severity: | Problem |
| Keywords: | Cc: |
Description
Consider the following innocuous-seeming program:
#include <boost/range.hpp>
namespace boost { struct some_type {}; }
template<typename T = boost::some_type>
struct S {};
void size(S<>) {}
int main()
{
S<> s;
size(s);
}
For me, with clang -std=gnu++14, I get this:
[100%] Building CXX object example/CMakeFiles/calendar.dir/calendar.cpp.o
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:24:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/iterator.hpp:24:
/cygdrive/c/boost/org/modular-boost/boost/mpl/eval_if.hpp:60:26: error: no type named 'type' in 'boost::range_mutable_iterator<S<boost::some_type>, void>'
typedef typename f_::type type;
~~~~~~~~~~~~~^~~~
/cygdrive/c/boost/org/modular-boost/boost/range/iterator.hpp:65:31: note: in instantiation of template class 'boost::mpl::eval_if_c<false, boost::range_const_iterator<S<boost::some_type>, void>, boost::range_mutable_iterator<S<boost::some_type>, void> >' requested here
typedef typename mpl::eval_if_c<
^
/cygdrive/c/boost/org/modular-boost/boost/range/difference_type.hpp:28:40: note: in instantiation of template class 'boost::range_iterator<S<boost::some_type>, void>' requested here
BOOST_DEDUCED_TYPENAME range_iterator<
^
/cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:57:40: note: in instantiation of template class 'boost::range_difference<S<boost::some_type> >' requested here
BOOST_DEDUCED_TYPENAME range_difference<C>::type
^
/cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:87:11: note: in instantiation of template class 'boost::detail::range_size<S<boost::some_type>, void>' requested here
: detail::range_size<T>
^
/cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:54:21: note: in instantiation of template class 'boost::range_size<const S<boost::some_type> >' requested here
inline typename range_size<const SinglePassRange>::type
^
/cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:44:5: note: while substituting deduced template arguments into function template 'size' [with SinglePassRange = S<boost::some_type>]
size(s);
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:24:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/iterator.hpp:24:
/cygdrive/c/boost/org/modular-boost/boost/mpl/eval_if.hpp:60:26: error: no type named 'type' in 'boost::range_const_iterator<S<boost::some_type>, void>'
typedef typename f_::type type;
~~~~~~~~~~~~~^~~~
/cygdrive/c/boost/org/modular-boost/boost/range/iterator.hpp:65:31: note: in instantiation of template class 'boost::mpl::eval_if_c<true, boost::range_const_iterator<S<boost::some_type>, void>, boost::range_mutable_iterator<const S<boost::some_type>, void> >' requested here
typedef typename mpl::eval_if_c<
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:270:40: note: in instantiation of template class 'boost::range_iterator<const S<boost::some_type>, void>' requested here
typedef BOOST_DEDUCED_TYPENAME range_iterator<
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:32:63: note: in instantiation of template class 'boost::SinglePassRangeConcept<S<boost::some_type> >' requested here
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:44:25: note: while substituting deduced template arguments into function template 'has_constraints_' [with Model = boost::SinglePassRangeConcept<S<boost::some_type> >]
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
^
/cygdrive/c/boost/org/modular-boost/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT'
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >' requested here
BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/value_wknd.hpp:57:40: note: expanded from macro 'BOOST_MPL_AUX_VALUE_WKND'
# define BOOST_MPL_AUX_VALUE_WKND(C) C
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/static_cast.hpp:24:62: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:51:10: note: in instantiation of template class 'boost::mpl::if_<boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::constraint<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::requirement<boost::concepts::failed ************boost::SinglePassRangeConcept<S<boost::some_type> >::************> >' requested here
: mpl::if_<
^
/cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:90:9: note: in instantiation of template class 'boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<S<boost::some_type> >)>' requested here
BOOST_RANGE_CONCEPT_ASSERT((boost::SinglePassRangeConcept<T>));
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:45: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:25: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:54:21: note: in instantiation of template class 'boost::range_size<const S<boost::some_type> >' requested here
inline typename range_size<const SinglePassRange>::type
^
/cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:44:5: note: while substituting deduced template arguments into function template 'size' [with SinglePassRange = S<boost::some_type>]
size(s);
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:21:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/iterator/iterator_concepts.hpp:10:
/cygdrive/c/boost/org/modular-boost/boost/iterator/iterator_categories.hpp:119:60: error: no type named 'iterator_category' in 'std::iterator_traits<int>'
typename boost::detail::iterator_traits<Iterator>::iterator_category
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:126:44: note: in instantiation of template class 'boost::iterators::iterator_traversal<int>' requested here
typedef BOOST_DEDUCED_TYPENAME iterator_traversal<Iterator>::type traversal_category;
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:146:15: note: in instantiation of template class 'boost::range_detail::IncrementableIteratorConcept<int>' requested here
: IncrementableIteratorConcept<Iterator>
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:32:63: note: in instantiation of template class 'boost::range_detail::SinglePassIteratorConcept<int>' requested here
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:44:25: note: while substituting deduced template arguments into function template 'has_constraints_' [with Model = boost::range_detail::SinglePassIteratorConcept<int>]
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
^
/cygdrive/c/boost/org/modular-boost/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT'
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<int> >' requested here
BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/value_wknd.hpp:57:40: note: expanded from macro 'BOOST_MPL_AUX_VALUE_WKND'
# define BOOST_MPL_AUX_VALUE_WKND(C) C
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/static_cast.hpp:24:62: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:51:10: note: in instantiation of template class 'boost::mpl::if_<boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<int> >, boost::concepts::constraint<boost::range_detail::SinglePassIteratorConcept<int> >, boost::concepts::requirement<boost::concepts::failed ************boost::range_detail::SinglePassIteratorConcept<int>::************> >' requested here
: mpl::if_<
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:276:9: note: in instantiation of template class 'boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<int>)>' requested here
BOOST_RANGE_CONCEPT_ASSERT((
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:45: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:25: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:32:63: note: in instantiation of template class 'boost::SinglePassRangeConcept<S<boost::some_type> >' requested here
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:44:25: note: while substituting deduced template arguments into function template 'has_constraints_' [with Model = boost::SinglePassRangeConcept<S<boost::some_type> >]
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
^
/cygdrive/c/boost/org/modular-boost/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT'
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >' requested here
BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/value_wknd.hpp:57:40: note: expanded from macro 'BOOST_MPL_AUX_VALUE_WKND'
# define BOOST_MPL_AUX_VALUE_WKND(C) C
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/static_cast.hpp:24:62: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:51:10: note: in instantiation of template class 'boost::mpl::if_<boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::constraint<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::requirement<boost::concepts::failed ************boost::SinglePassRangeConcept<S<boost::some_type> >::************> >' requested here
: mpl::if_<
^
/cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:90:9: note: in instantiation of template class 'boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<S<boost::some_type> >)>' requested here
BOOST_RANGE_CONCEPT_ASSERT((boost::SinglePassRangeConcept<T>));
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:45: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:25: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:54:21: note: in instantiation of template class 'boost::range_size<const S<boost::some_type> >' requested here
inline typename range_size<const SinglePassRange>::type
^
/cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:44:5: note: while substituting deduced template arguments into function template 'size' [with SinglePassRange = S<boost::some_type>]
size(s);
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:21:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:20:
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:152:71: error: no type named 'traversal_category' in 'boost::range_detail::SinglePassIteratorConcept<int>'
BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:67: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:36: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:38: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:32:63: note: in instantiation of template class 'boost::range_detail::SinglePassIteratorConcept<int>' requested here
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:44:25: note: while substituting deduced template arguments into function template 'has_constraints_' [with Model = boost::range_detail::SinglePassIteratorConcept<int>]
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
^
/cygdrive/c/boost/org/modular-boost/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT'
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<int> >' requested here
BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/value_wknd.hpp:57:40: note: expanded from macro 'BOOST_MPL_AUX_VALUE_WKND'
# define BOOST_MPL_AUX_VALUE_WKND(C) C
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/static_cast.hpp:24:62: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:51:10: note: in instantiation of template class 'boost::mpl::if_<boost::concepts::not_satisfied<boost::range_detail::SinglePassIteratorConcept<int> >, boost::concepts::constraint<boost::range_detail::SinglePassIteratorConcept<int> >, boost::concepts::requirement<boost::concepts::failed ************boost::range_detail::SinglePassIteratorConcept<int>::************> >' requested here
: mpl::if_<
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:276:9: note: in instantiation of template class 'boost::concepts::requirement_<void (*)(boost::range_detail::SinglePassIteratorConcept<int>)>' requested here
BOOST_RANGE_CONCEPT_ASSERT((
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:45: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:25: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:32:63: note: in instantiation of template class 'boost::SinglePassRangeConcept<S<boost::some_type> >' requested here
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/has_constraints.hpp:44:25: note: while substituting deduced template arguments into function template 'has_constraints_' [with Model = boost::SinglePassRangeConcept<S<boost::some_type> >]
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
^
/cygdrive/c/boost/org/modular-boost/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT'
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >' requested here
BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/value_wknd.hpp:57:40: note: expanded from macro 'BOOST_MPL_AUX_VALUE_WKND'
# define BOOST_MPL_AUX_VALUE_WKND(C) C
^
/cygdrive/c/boost/org/modular-boost/boost/mpl/aux_/static_cast.hpp:24:62: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:51:10: note: in instantiation of template class 'boost::mpl::if_<boost::concepts::not_satisfied<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::constraint<boost::SinglePassRangeConcept<S<boost::some_type> > >, boost::concepts::requirement<boost::concepts::failed ************boost::SinglePassRangeConcept<S<boost::some_type> >::************> >' requested here
: mpl::if_<
^
/cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:90:9: note: in instantiation of template class 'boost::concepts::requirement_<void (*)(boost::SinglePassRangeConcept<S<boost::some_type> >)>' requested here
BOOST_RANGE_CONCEPT_ASSERT((boost::SinglePassRangeConcept<T>));
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:102:45: note: expanded from macro 'BOOST_RANGE_CONCEPT_ASSERT'
#define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:25: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:54:21: note: in instantiation of template class 'boost::range_size<const S<boost::some_type> >' requested here
inline typename range_size<const SinglePassRange>::type
^
/cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:44:5: note: while substituting deduced template arguments into function template 'size' [with SinglePassRange = S<boost::some_type>]
size(s);
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:21:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:19:
/cygdrive/c/boost/org/modular-boost/boost/concept_check.hpp:210:9: error: no viable conversion from 'int' to 'boost::iterators::incrementable_traversal_tag'
Y y = x;
^ ~
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::Convertible<int, boost::iterators::incrementable_traversal_tag>::~Convertible' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::Convertible<int, boost::iterators::incrementable_traversal_tag> >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept_check.hpp:209:5: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::Convertible<int, boost::iterators::incrementable_traversal_tag> >::************>::failed' requested here
BOOST_CONCEPT_USAGE(Convertible) {
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
/cygdrive/c/boost/org/modular-boost/boost/iterator/iterator_categories.hpp:33:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const boost::iterators::incrementable_traversal_tag &' for 1st argument
struct incrementable_traversal_tag
^
/cygdrive/c/boost/org/modular-boost/boost/iterator/iterator_categories.hpp:33:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'int' to 'boost::iterators::incrementable_traversal_tag &&' for 1st argument
struct incrementable_traversal_tag
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:20:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size.hpp:21:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/size_type.hpp:20:
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:167:82: error: no type named 'reference' in 'std::iterator_traits<int>'
BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r1(*i);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::range_detail::SinglePassIteratorConcept<int>::~SinglePassIteratorConcept' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<int> >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:156:13: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::range_detail::SinglePassIteratorConcept<int> >::************>::failed' requested here
BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:18:
/cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:47:18: error: no member named 'begin' in 'S<boost::some_type>'
return c.begin();
~ ^
/cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:102:12: note: in instantiation of function template specialization 'boost::range_detail::range_begin<S<boost::some_type> >' requested here
return range_begin( r );
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:287:34: note: in instantiation of function template specialization 'boost::range_adl_barrier::begin<S<boost::some_type> >' requested here
iterator i1 = boost::begin(*m_range);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::~SinglePassRangeConcept' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:282:9: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::************>::failed' requested here
BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:19:
/cygdrive/c/boost/org/modular-boost/boost/range/end.hpp:48:22: error: no member named 'end' in 'S<boost::some_type>'
return c.end();
~ ^
/cygdrive/c/boost/org/modular-boost/boost/range/end.hpp:96:12: note: in instantiation of function template specialization 'boost::range_detail::range_end<S<boost::some_type> >' requested here
return range_end( r );
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:288:34: note: in instantiation of function template specialization 'boost::range_adl_barrier::end<S<boost::some_type> >' requested here
iterator i2 = boost::end(*m_range);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::~SinglePassRangeConcept' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:282:9: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::************>::failed' requested here
BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:18:
/cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:47:18: error: no member named 'begin' in 'S<boost::some_type>'
return c.begin();
~ ^
/cygdrive/c/boost/org/modular-boost/boost/range/begin.hpp:111:12: note: in instantiation of function template specialization 'boost::range_detail::range_begin<const S<boost::some_type> >' requested here
return range_begin( r );
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:299:41: note: in instantiation of function template specialization 'boost::range_adl_barrier::begin<S<boost::some_type> >' requested here
const_iterator ci1 = boost::begin(const_range);
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:293:13: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::const_constraints' requested here
const_constraints(*m_range);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::~SinglePassRangeConcept' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:282:9: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::************>::failed' requested here
BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
In file included from /cygdrive/c/Users/eric/Code/range-v3/example/calendar.cpp:34:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range.hpp:18:
In file included from /cygdrive/c/boost/org/modular-boost/boost/range/functions.hpp:19:
/cygdrive/c/boost/org/modular-boost/boost/range/end.hpp:48:22: error: no member named 'end' in 'S<boost::some_type>'
return c.end();
~ ^
/cygdrive/c/boost/org/modular-boost/boost/range/end.hpp:105:12: note: in instantiation of function template specialization 'boost::range_detail::range_end<const S<boost::some_type> >' requested here
return range_end( r );
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:300:41: note: in instantiation of function template specialization 'boost::range_adl_barrier::end<S<boost::some_type> >' requested here
const_iterator ci2 = boost::end(const_range);
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:293:13: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::const_constraints' requested here
const_constraints(*m_range);
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::SinglePassRangeConcept<S<boost::some_type> >::~SinglePassRangeConcept' requested here
~usage_requirements() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::~usage_requirements' requested here
static void failed() { ((Model*)0)->~Model(); }
^
/cygdrive/c/boost/org/modular-boost/boost/range/concepts.hpp:282:9: note: in instantiation of member function 'boost::concepts::requirement<boost::concepts::failed ************boost::concepts::usage_requirements<boost::SinglePassRangeConcept<S<boost::some_type> > >::************>::failed' requested here
BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE'
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
^
/cygdrive/c/boost/org/modular-boost/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
^
/cygdrive/c/boost/org/modular-boost/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
^
10 errors generated.
example/CMakeFiles/calendar.dir/build.make:54: recipe for target 'example/CMakeFiles/calendar.dir/calendar.cpp.o' failed
make[3]: *** [example/CMakeFiles/calendar.dir/calendar.cpp.o] Error 1
CMakeFiles/Makefile2:5748: recipe for target 'example/CMakeFiles/calendar.dir/all' failed
make[2]: *** [example/CMakeFiles/calendar.dir/all] Error 2
CMakeFiles/Makefile2:5760: recipe for target 'example/CMakeFiles/calendar.dir/rule' failed
make[1]: *** [example/CMakeFiles/calendar.dir/rule] Error 2
Makefile:2083: recipe for target 'calendar' failed
make: *** [calendar] Error 2
Note:
See TracTickets
for help on using tickets.

See this pull request: https://github.com/boostorg/range/pull/28