[Boost-bugs] [Boost C++ Libraries] #11267: Nested boost::fusion::make_list fails to compile under boost 1.58.0

Subject: [Boost-bugs] [Boost C++ Libraries] #11267: Nested boost::fusion::make_list fails to compile under boost 1.58.0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-05-05 00:16:52


#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

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11267>
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:18 UTC