Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11267: Nested boost::fusion::make_list fails to compile under boost 1.58.0
From: Damien Buhl (damien.buhl_at_[hidden])
Date: 2015-05-05 06:11:52
Hi Joel,
I looked into the container:
> clang++ --std=c++11 -DBOOST_CONSTEXPR= boostFusion_ticket11267_nestedMakeList.cpp -I ~/workspace/boost/
> clang++ --std=c++11 boostFusion_ticket11267_nestedMakeList.cpp -I ~/workspace/boost/
And both don't compile so it is not related to any constexpr I think,
but I can be wrong.
What happens for me is :
> In file included from boostFusion_ticket11267_nestedMakeList.cpp:1:
> In file included from /home/daminetreg/workspace/boost/boost/fusion/container/generation/make_list.hpp:16:
> In file included from /home/daminetreg/workspace/boost/boost/fusion/container/list/list.hpp:12:
> In file included from /home/daminetreg/workspace/boost/boost/fusion/container/list/detail/list_to_cons.hpp:11:
> /home/daminetreg/workspace/boost/boost/fusion/container/list/cons.hpp:69:15: error: no viable conversion from 'const car_type' (aka 'const boost::fusion::list<double, std::basic_string<char>, boost::fusion::void_, boost::fusion::void_,
> boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>') to 'car_type' (aka 'double')
> : car(rhs.car), cdr(rhs.cdr) {}
Didn't you want to CC Flast also ?
I'll try to look into it this week, but Flast may know this part quite
better than me.
Cheers,
-- Damien Buhl On 05/05/2015 02:20, Joel de Guzman wrote: > Hey guys, are all these related? > > -------- Forwarded Message -------- > Subject: [Boost C++ Libraries] #11267: Nested boost::fusion::make_list > fails to compile under boost 1.58.0 > Date: Tue, 05 May 2015 00:16:52 -0000 > From: Boost C++ Libraries <noreply_at_[hidden]> > CC: boost-bugs_at_[hidden] > > #11267: Nested boost::fusion::make_list fails to compile under boost 1.58.0 > --------------------------------------+------------------------ > Reporter: Andrew King <eurokang@â¦> | Owner: djowel > Type: Bugs | Status: new > Milestone: To Be Determined | Component: fusion > Version: Boost 1.58.0 | Severity: Regression > Keywords: | > --------------------------------------+------------------------ > The following code compiles just fine under boost 1.56.0 (std=c++11), but > fails to compile under boost-1.58.0 with either clang++-3.6 or g++-4.9.2 > > {{{ > #include <boost/fusion/container/generation/make_list.hpp> > #include <boost/fusion/algorithm/iteration/for_each.hpp> > #include <iostream> > > template <typename T> > void Handle(const T& t); > > template <typename ... T> > void Handle(const boost::fusion::list<T...>& x); > > struct CallFunctor > { > template <typename T> > void operator()(const T& t) const > { > Handle(t); > } > }; > > template <typename T> > void Handle(const T& t) > { > std::cout << t << std::endl; > } > > template <typename ... T> > void Handle(const boost::fusion::list<T...>& x) > { > boost::fusion::for_each(x, CallFunctor{}); > } > > template <typename List> > void PrintList(const List& list) > { > boost::fusion::for_each(list, CallFunctor{}); > } > > int main() > { > PrintList( > boost::fusion::make_list( > std::string("x"), > 4, > 6, > boost::fusion::make_list(23.0, std::string("rar")))); > > return 0; > } > }}} > > There appears to be a compile error with the use of boost::is_convertible > inside boost::enable_if in boost/fusion/container/list/cons.hpp:79 >
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:18 UTC