id summary reporter owner description type status milestone component version severity resolution keywords cc 11267 Nested boost::fusion::make_list fails to compile under boost 1.58.0 Andrew King Joel de Guzman "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 #include #include template void Handle(const T& t); template void Handle(const boost::fusion::list& x); struct CallFunctor { template void operator()(const T& t) const { Handle(t); } }; template void Handle(const T& t) { std::cout << t << std::endl; } template void Handle(const boost::fusion::list& x) { boost::fusion::for_each(x, CallFunctor{}); } template 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" Bugs closed Boost 1.59.0 fusion Boost 1.58.0 Regression fixed