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