Boost logo

Boost :

From: Michael Marcin (mmarcin_at_[hidden])
Date: 2006-12-21 18:03:08


Attached is a simple repro (taken directly from the fusion::map
documentation example).

It fails to compile on Visual Studio 2005 using CVS HEAD from today the
message below.

Fusion::map solves a current problem I have rather elegantly but this is an
obvious showstopper.

Any ideas?

Thanks,

Michael Marcin

1>c:\subversion\boost-head\boost\boost\fusion\sequence\intrinsic\at.hpp(60)
: error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>' :
base class undefined
1> with
1> [
1> Tag=boost::fusion::map_tag
1> ]
1> and
1> [
1> Sequence=const map_type,
1> N=int
1> ]
1> c:\code\publishsubscribe\main.cpp(73) : see reference to class
template instantiation 'boost::fusion::result_of::at<Sequence,N>' being
compiled
1> with
1> [
1> Sequence=const map_type,
1> N=int
1> ]
1>c:\subversion\boost-head\boost\boost\fusion\sequence\intrinsic\at.hpp(60)
: error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>' :
base class undefined
1> with
1> [
1> Tag=boost::fusion::map_tag
1> ]
1> and
1> [
1> Sequence=map_type,
1> N=int
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) :
see reference to class template instantiation
'boost::fusion::result_of::at<Sequence,N>' being compiled
1> with
1> [
1> Sequence=map_type,
1> N=int
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(70) :
see reference to class template instantiation
'boost::lazy_disable_if_c<B,T>' being compiled
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,int>
1> ]
1> c:\code\publishsubscribe\main.cpp(73) : see reference to class
template instantiation 'boost::lazy_disable_if<Cond,T>' being compiled
1> with
1> [
1> Cond=boost::is_const<map_type>,
1> T=boost::fusion::result_of::at<map_type,int>
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2039: 'type' : is not a member of
'boost::fusion::result_of::at<Sequence,N>'
1> with
1> [
1> Sequence=map_type,
1> N=int
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2146: syntax error : missing ';' before identifier 'type'
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C4430: missing type specifier - int assumed. Note: C++ does not support
default-int
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2602: 'boost::lazy_disable_if_c<B,T>::type' is not a member of a base class
of 'boost::lazy_disable_if_c<B,T>'
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,int>
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) :
see declaration of 'boost::lazy_disable_if_c<B,T>::type'
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,int>
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2868: 'boost::lazy_disable_if_c<B,T>::type' : illegal syntax for
using-declaration; expected qualified-name
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,int>
1> ]
1>c:\subversion\boost-head\boost\boost\fusion\sequence\intrinsic\at.hpp(60)
: error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>' :
base class undefined
1> with
1> [
1> Tag=boost::fusion::map_tag
1> ]
1> and
1> [
1> Sequence=const map_type,
1> N=double
1> ]
1> c:\code\publishsubscribe\main.cpp(74) : see reference to class
template instantiation 'boost::fusion::result_of::at<Sequence,N>' being
compiled
1> with
1> [
1> Sequence=const map_type,
1> N=double
1> ]
1>c:\subversion\boost-head\boost\boost\fusion\sequence\intrinsic\at.hpp(60)
: error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>' :
base class undefined
1> with
1> [
1> Tag=boost::fusion::map_tag
1> ]
1> and
1> [
1> Sequence=map_type,
1> N=double
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) :
see reference to class template instantiation
'boost::fusion::result_of::at<Sequence,N>' being compiled
1> with
1> [
1> Sequence=map_type,
1> N=double
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(70) :
see reference to class template instantiation
'boost::lazy_disable_if_c<B,T>' being compiled
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,double>
1> ]
1> c:\code\publishsubscribe\main.cpp(74) : see reference to class
template instantiation 'boost::lazy_disable_if<Cond,T>' being compiled
1> with
1> [
1> Cond=boost::is_const<map_type>,
1> T=boost::fusion::result_of::at<map_type,double>
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2039: 'type' : is not a member of
'boost::fusion::result_of::at<Sequence,N>'
1> with
1> [
1> Sequence=map_type,
1> N=double
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2146: syntax error : missing ';' before identifier 'type'
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C4430: missing type specifier - int assumed. Note: C++ does not support
default-int
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2602: 'boost::lazy_disable_if_c<B,T>::type' is not a member of a base class
of 'boost::lazy_disable_if_c<B,T>'
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,double>
1> ]
1> c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) :
see declaration of 'boost::lazy_disable_if_c<B,T>::type'
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,double>
1> ]
1>c:\subversion\boost-head\boost\boost\utility\enable_if.hpp(63) : error
C2868: 'boost::lazy_disable_if_c<B,T>::type' : illegal syntax for
using-declaration; expected qualified-name
1> with
1> [
1> B=false,
1> T=boost::fusion::result_of::at<map_type,double>
1> ]

begin 666 fusion_map_test.cpp
M(VEN8VQU9&4@/&EO<W1R96%M/@T*#0HC:6YC;'5D92 \8F]O<W0O9G5S:6]N
M+W-U<'!O<G0O<&%I<BYH<' ^#0HC:6YC;'5D92 \8F]O<W0O9G5S:6]N+W-E
M<75E;F-E+V-O;G1A:6YE<B]M87 N:'!P/@T*(VEN8VQU9&4@/&)O;W-T+V9U
M<VEO;B]S97%U96YC92]I;G1R:6YS:6,O870N:'!P/@T*#0IU<VEN9R!N86UE
M<W!A8V4_at_8F]O<W0Z.F9U<VEO;CL-"@T*:6YT(&UA:6XH*0T*>PT*"71Y<&5D
M968@;6%P/ T*"0EP86ER/&EN="P_at_8VAA<CX-"@D)+"!P86ER/&1O=6)L92P@
M<W1D.CIS=')I;F<^(#X@#0H)"6UA<%]T>7!E.PT*#0H);6%P7W1Y<&4@;2_at_-
M"@D);6%K95]P86ER/&EN=#XH)U_at_G*0T*"0DL(&UA:V5?<&%I<CQD;W5B;&4^
M*")-96XB*2D[#0H-"@ES=&0Z.F-O=70@/#P_at_870\:6YT/BAM*2 \/"!S=&0Z
M.F5N9&P[#0H)<W1D.CIC;W5T(#P\(&%T/&1O=6)L93XH;2D@/#P@<W1D.CIE
7;F1L.PT*#0H)<F5T=7)N(# [#0I]#0H`
`
end


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