Boost logo

Boost :

Subject: [boost] [Fusion] [Phoenix] VC10
From: Richard Crossley (rdc_at_[hidden])
Date: 2010-04-22 05:46:48


I'm trying to port an existing program from V9 to VC10. With both Boost head
and the 1.43RC I get a lot of errors relating to Phoenix and Fusion, none
of which I've been able to recreate with a simple test and the back trace of
the error messages are somewhat confusing.

However if I the change the two BOOST_WORKAROUND(BOOST_MSVC, <= 1500) to
1600 in /boost/fusion/container/vector/vector.hpp all the problems seem to
go away.

Perhaps someone who is more knowledge about this could take a look?

Thanks,

Richard.

4>c:\boost_1_43_0_beta1\boost/fusion/container/vector/detail/vector_n.hpp(68
): error C2665: 'boost::fusion::vector_data2<Derived,T0,T1>::vector_data2' :
none of the 3 overloads could convert all the argument types
4> with
4> [
4>
Derived=boost::fusion::vector2<boost::phoenix::argument<0>,boost::phoenix::v
alue<bool (__cdecl property_t::* )(void) const>>,
4> T0=boost::phoenix::argument<0>,
4> T1=boost::phoenix::value<bool (__cdecl property_t::* )(void)
const>
4> ]
4>
c:\boost_1_43_0_beta1\boost/fusion/container/vector/detail/vector_n.hpp(45):
could be 'boost::fusion::vector_data2<Derived,T0,T1>::vector_data2(const
boost::phoenix::argument<N> &,const boost::phoenix::value<T> &)'
4> with
4> [
4>
Derived=boost::fusion::vector2<boost::phoenix::argument<0>,boost::phoenix::v
alue<bool (__cdecl property_t::* )(void) const>>,
4> T0=boost::phoenix::argument<0>,
4> T1=boost::phoenix::value<bool (__cdecl property_t::* )(void)
const>,
4> N=0,
4> T=bool (__cdecl property_t::* )(void) const
4> ]
4> while trying to match the argument list '(const
boost::phoenix::composite<EvalPolicy,EvalTuple>, const boost::mpl::void_)'
4> with
4> [
4> EvalPolicy=boost::phoenix::mem_fun_ptr_eval,
4>
EvalTuple=boost::fusion::vector<boost::phoenix::argument<0>,boost::phoenix::
value<bool (__cdecl property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>
4> ]
4>
c:\boost_1_43_0_beta1\boost/fusion/container/vector/detail/vector_n.hpp(105)
: see reference to function template instantiation
'boost::fusion::vector_data2<Derived,T0,T1>
boost::fusion::vector_data2<Derived,T0,T1>::init_from_sequence<Sequence>(con
st Sequence &)' being compiled
4> with
4> [
4>
Derived=boost::fusion::vector2<boost::phoenix::argument<0>,boost::phoenix::v
alue<bool (__cdecl property_t::* )(void) const>>,
4> T0=boost::phoenix::argument<0>,
4> T1=boost::phoenix::value<bool (__cdecl property_t::* )(void)
const>,
4> Sequence=const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusio
n::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
4> ]
4>
c:\boost_1_43_0_beta1\boost/fusion/container/vector/vector.hpp(58) : see
reference to function template instantiation
'boost::fusion::vector2<T0,T1>::vector2<Sequence>(const Sequence &)' being
compiled
4> with
4> [
4> T0=boost::phoenix::argument<0>,
4> T1=boost::phoenix::value<bool (__cdecl property_t::* )(void)
const>,
4> Sequence=const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusio
n::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
4> ]
4>
c:\boost_1_43_0_beta1\boost/spirit/home/phoenix/core/composite.hpp(71) : see
reference to function template instantiation
'boost::fusion::vector<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::vector<const
U0>(const Sequence &)' being compiled
4> with
4> [
4> T0=boost::phoenix::argument<0>,
4> T1=boost::phoenix::value<bool (__cdecl property_t::* )(void)
const>,
4> T2=boost::fusion::void_,
4> T3=boost::fusion::void_,
4> T4=boost::fusion::void_,
4> T5=boost::fusion::void_,
4> T6=boost::fusion::void_,
4> T7=boost::fusion::void_,
4> T8=boost::fusion::void_,
4> T9=boost::fusion::void_,
4> U0=const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusio
n::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>,
4> Sequence=const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusio
n::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
4> ]
4>
c:\boost_1_43_0_beta1\boost/fusion/container/vector/vector.hpp(58) : see
reference to function template instantiation
'boost::phoenix::composite<EvalPolicy,EvalTuple>::composite<const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>>>(U0 &)' being compiled
4> with
4> [
4> EvalPolicy=boost::phoenix::mem_fun_ptr_eval,
4>
EvalTuple=boost::fusion::vector<boost::phoenix::argument<0>,boost::phoenix::
value<bool (__cdecl property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>,
4>
T0=boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusion:
:vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,
4> T1=boost::fusion::void_,
4> T2=boost::fusion::void_,
4> T3=boost::fusion::void_,
4> T4=boost::fusion::void_,
4> T5=boost::fusion::void_,
4> T6=boost::fusion::void_,
4> T7=boost::fusion::void_,
4> T8=boost::fusion::void_,
4> T9=boost::fusion::void_,
4> U0=const
boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::fusion::ve
ctor<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusio
n::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
4> ]
4> C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\xlocnum(1081) : see reference to function template
instantiation
'boost::fusion::vector<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::vector<boost::phoenix
::composite<EvalPolicy,EvalTuple>>(const Sequence &)' being compiled
4> with
4> [
4>
T0=boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boost::fusion:
:vector<boost::phoenix::argument<0>,boost::phoenix::value<bool (__cdecl
property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,
4> T1=boost::fusion::void_,
4> T2=boost::fusion::void_,
4> T3=boost::fusion::void_,
4> T4=boost::fusion::void_,
4> T5=boost::fusion::void_,
4> T6=boost::fusion::void_,
4> T7=boost::fusion::void_,
4> T8=boost::fusion::void_,
4> T9=boost::fusion::void_,
4> EvalPolicy=boost::phoenix::logical_not_eval,
4>
EvalTuple=boost::fusion::vector<boost::phoenix::composite<boost::phoenix::me
m_fun_ptr_eval,boost::fusion::vector<boost::phoenix::argument<0>,boost::phoe
nix::value<bool (__cdecl property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,
4>
Sequence=boost::phoenix::composite<boost::phoenix::logical_not_eval,boost::f
usion::vector<boost::phoenix::composite<boost::phoenix::mem_fun_ptr_eval,boo
st::fusion::vector<boost::phoenix::argument<0>,boost::phoenix::value<bool
(__cdecl property_t::* )(void)
const>,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost:
:fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void
_,boost::fusion::void_>>,boost::fusion::void_,boost::fusion::void_,boost::fu
sion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,b
oost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
4> ]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk