[fusion] VC8 specific error

I'm getting the following error from fusion only when using VC8: ..\..\..\boost/fusion/sequence/intrinsic/at.hpp(59) : error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>' : base class undefined with [ Tag=boost::fusion::non_fusion_tag ] and [ Sequence=const boost::tuples::tuple<double,double>, N=boost::mpl::int_<0> ] ..\..\..\boost/fusion/sequence/intrinsic/at.hpp(64) : see reference to class template instantiation 'boost::fusion::result_of::at<Sequence,N>' being compiled with [ Sequence=const boost::tuples::tuple<double,double>, N=boost::mpl::int_<0> ] ..\..\..\boost/math/tools/roots.hpp(47) : see reference to class template instantiation 'boost::fusion::result_of::at_c<Sequence,N>' being compiled with [ Sequence=const boost::tuples::tuple<double,double>, N=0 ] ..\..\..\boost/math/tools/roots.hpp(225) : see reference to function template instantiation 'void boost::math::tools::detail::unpack<boost::tuples::tuple<T0,T1>,T,T>(const Tuple &,T &,U &)' being compiled with [ T0=double, T1=double, T=double, Tuple=boost::tuples::tuple<double,double>, U=double ] compile_test\tools_roots_concept_test.cpp(115) : see reference to function template instantiation 'T boost::math::tools::newton_raphson_iterate<F2t,double>(F,T,T,T,int,boost::uintmax_t &)' being compiled with [ T=double, F=F2t ] The code is simply calling boost::fusion::get<N>() on a fusion tuple, and after including <boost/fusion/tuple.hpp>. Any ideas? This is with Trunk BTW. Cheers, John.

On 9/5/10 12:33 AM, John Maddock wrote:
The code is simply calling boost::fusion::get<N>() on a fusion tuple, and after including <boost/fusion/tuple.hpp>.
Any ideas?
Is it only VC8 that's affected? I don't have VC8 ATM, but I do have VC9. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net

The code is simply calling boost::fusion::get<N>() on a fusion tuple, and after including <boost/fusion/tuple.hpp>.
Any ideas?
Is it only VC8 that's affected? I don't have VC8 ATM, but I do have VC9.
I think this was my mistake - I was trying to use ADL to find the right "get" overload for the tuple type provided (either std:: std::tr1:: boost:: or boost::fusion::) - but the wrong overload is being selected for some reason, and ADL is simply failing completely with GCC so I'm going to give up for now :-( Sorry for the noise, John.
participants (2)
-
Joel de Guzman
-
John Maddock