fusion error when compiling graphviz code using VC2010
We have been using Boost's graphviz support for several years and have upgraded through a few versions of Boost with no issues in some long stable code. However, when we moved to 1.58 our Windows build broke. We are still using VC2010, with plans to move to 2015 in the not-too-distant future. We have not yet tried 1.58 in VC2015. The error message is very large but emanates from here: boost/include/boost-1_58\boost/fusion/container/list/cons.hpp(86): error C2664: 'boost::xpressive::detail::alternates_list
::alternates_list(cons t Head &,const boost::fusion::nil &)' : cannot convert parameter 1 from 'const boost::fusion::cons_iterator<Cons>' to 'const boost::xpressive::detail::static_xpression::type* /*dummy*/ = 0 ) : car(*fusion::begin(seq)), cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
When we replace this with the following implementation from 1.54 the build
works and it appears the desired functionality is working (though more
testing is required).
template <typename Sequence> BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
cons(
Sequence const& seq,
typename boost::disable_if<
mpl::or_<
is_convertible
::type* /*dummy*/ = 0
) : car(*fusion::begin(seq)), cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {} Any thoughts? The new code in 1.58 builds and runs fine with no mods on OS X. We have not tried Linux yet.
Hi Carl, On 2015/06/29 20:36, Carl Wallace wrote:
We have been using Boost's graphviz support for several years and have upgraded through a few versions of Boost with no issues in some long stable code. However, when we moved to 1.58 our Windows build broke. We are still using VC2010, with plans to move to 2015 in the not-too-distant future. We have not yet tried 1.58 in VC2015. The error message is very large but emanates from here: Can I get (minimal) reproducible code or more detailed error log?
Best, Kohei
participants (2)
-
Carl Wallace
-
Kohei Takahashi