When trying to use the foreach library, whether running it tests or trying to build quickbook which uses the foreach macro, I am seeing from different compilers: gcc-4.9.2
In file included from stl_byval.cpp:15:0: ./utility.hpp: In function 'bool sequence_equal_byval_n(foreach_container_type&, const char*)': ..\..\../boost/foreach.hpp:906:96: error: no matching function for call to 'encode_type(foreach_container_type&, boost::is_const<std::list<int> >*)' (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) ^ ..\..\../boost/foreach.hpp:1013:9: note: in expansion of macro 'BOOST_FOREACH_TYPEOF' , BOOST_FOREACH_TYPEOF(COL) \ ^ ..\..\../boost/foreach.hpp:1095:77: note: in expansion of macro 'BOOST_FOREACH_BEGIN' if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \ ^ ./utility.hpp:20:5: note: in expansion of macro 'BOOST_FOREACH' BOOST_FOREACH( foreach_value_type i, rng ) ^
clang
In file included from stl_byval.cpp:25: ././utility.hpp:20:5: error: no matching function for call to 'encode_type' BOOST_FOREACH( foreach_value_type i, rng ) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:1095:77: note: expanded from macro 'BOOST_FOREACH' if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \ ^~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:1013:9: note: expanded from macro 'BOOST_FOREACH_BEGIN' , BOOST_FOREACH_TYPEOF(COL) \ ^~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:906:17: note: expanded from macro 'BOOST_FOREACH_TYPEOF' (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:401:22: note: candidate function [with T = std::list<int, std::allocator<int> >] not viable: no known conversion from 'boost::is_const<list<int, allocator<int> > > *' to 'boost::mpl::false_ *' (aka 'bool_<false> *') for 2nd argument inline type2type<T> *encode_type(T &, boost::mpl::false_ *) { return 0; } ^ ..\..\..\boost/foreach.hpp:404:30: note: candidate function [with T = std::list<int, std::allocator<int> >] not viable: no known conversion from 'boost::is_const<list<int, allocator<int> > > *' to 'boost::mpl::true_ *' (aka 'bool_<true> *') for 2nd argument inline type2type<T, const_> *encode_type(T const &, boost::mpl::true_ *) { return 0; } ^ In file included from stl_byval.cpp:25: ././utility.hpp:20:5: error: no matching function for call to 'encode_type' BOOST_FOREACH( foreach_value_type i, rng ) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Does anybody know what is causing this error ? I can't seem to proceed in building documentation with quickbook until I can get foreach working. I pulled the latest foreach from the master branch and ran b2 headers but still the problem occurs.
On 3/3/2015 7:58 PM, Edward Diener wrote:
When trying to use the foreach library, whether running it tests or trying to build quickbook which uses the foreach macro, I am seeing from different compilers:
gcc-4.9.2
In file included from stl_byval.cpp:15:0: ./utility.hpp: In function 'bool sequence_equal_byval_n(foreach_container_type&, const char*)': ..\..\../boost/foreach.hpp:906:96: error: no matching function for call to 'encode_type(foreach_container_type&, boost::is_const<std::list<int> >*)' (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL)))
^ ..\..\../boost/foreach.hpp:1013:9: note: in expansion of macro 'BOOST_FOREACH_TYPEOF' , BOOST_FOREACH_TYPEOF(COL) \ ^ ..\..\../boost/foreach.hpp:1095:77: note: in expansion of macro 'BOOST_FOREACH_BEGIN' if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \
^ ./utility.hpp:20:5: note: in expansion of macro 'BOOST_FOREACH' BOOST_FOREACH( foreach_value_type i, rng ) ^
clang
In file included from stl_byval.cpp:25: ././utility.hpp:20:5: error: no matching function for call to 'encode_type' BOOST_FOREACH( foreach_value_type i, rng ) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:1095:77: note: expanded from macro 'BOOST_FOREACH' if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \
^~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:1013:9: note: expanded from macro 'BOOST_FOREACH_BEGIN' , BOOST_FOREACH_TYPEOF(COL) \ ^~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:906:17: note: expanded from macro 'BOOST_FOREACH_TYPEOF' (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ..\..\..\boost/foreach.hpp:401:22: note: candidate function [with T = std::list<int, std::allocator<int> >] not viable: no known conversion from 'boost::is_const<list<int, allocator<int> > > *' to 'boost::mpl::false_ *' (aka 'bool_<false> *') for 2nd argument inline type2type<T> *encode_type(T &, boost::mpl::false_ *) { return 0; } ^ ..\..\..\boost/foreach.hpp:404:30: note: candidate function [with T = std::list<int, std::allocator<int> >] not viable: no known conversion from 'boost::is_const<list<int, allocator<int> > > *' to 'boost::mpl::true_ *' (aka 'bool_<true> *') for 2nd argument inline type2type<T, const_> *encode_type(T const &, boost::mpl::true_ *) { return 0; } ^ In file included from stl_byval.cpp:25: ././utility.hpp:20:5: error: no matching function for call to 'encode_type' BOOST_FOREACH( foreach_value_type i, rng ) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Does anybody know what is causing this error ? I can't seem to proceed in building documentation with quickbook until I can get foreach working. I pulled the latest foreach from the master branch and ran b2 headers but still the problem occurs.
This comes from my testing of type_traits Version2. Sorry for the noise <g>.
On 3/3/2015 5:43 PM, Edward Diener wrote:
On 3/3/2015 7:58 PM, Edward Diener wrote:
When trying to use the foreach library, whether running it tests or trying to build quickbook which uses the foreach macro, I am seeing from different compilers: <snip>
This comes from my testing of type_traits Version2. Sorry for the noise <g>.
I believe John Maddock submitted a pull to foreach to fix this. The fix is in develop, but I haven't merged it to master yet. Busy. -- Eric Niebler Boost.org http://www.boost.org
participants (3)
-
Edward Diener
-
Eric Niebler
-
Peter Dimov