Can't call boost::fusion::invoke with >= 7 args

Hi, First time poster. I found Boost over the weekend and have to say it's a great library! It's enabled me to do things in C++ I didn't think were possible before. I'm posting because I'm having a problem with boost::fusion::invoke. I'm using it to call a function with a list of predefined parameters. I found that if I have 6 or fewer parameters, everything compiles fine. If I have 7 or more parameters, it doesn't compile. I verified that it's not the parameters by removing the first 4 and leaving the last 5 (which was OK). Here's the code that I think is relevant: boost::fusion::invoke(func,args); Args is an iterator typename boost::mpl::begin< boost::function_types::parameter_types<Function> >::type func is a function pointer passed from C++ This is on Visual Studio 2005 using boost 1.35. I need at least 9 parameters. Thanks in advance! For reference, the output from the compiler is pasted below ---------------------- 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(102) : error C2504: 'boost::fusion::detail::invoke_impl<Function,Sequence,N,CBI,RandomAccess>' : base class undefined 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Sequence=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>>, 1> N=9, 1> CBI=false, 1> RandomAccess=false 1> ] 1> c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(110) : see reference to class template instantiation 'boost::fusion::detail::invoke_nonmember_builtin<F,Sequence,N,RandomAccess>' being compiled 1> with 1> [ 1> F=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Sequence=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>>, 1> N=9, 1> RandomAccess=false 1> ] 1> c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : see reference to class template instantiation 'boost::fusion::detail::invoke_impl<Function,Sequence>' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Sequence=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(261) : see reference to class template instantiation 'boost::fusion::result_of::invoke<Function,Sequence>' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Sequence=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>, 1> Sequence2=const boost::fusion::single_view<RakNet::RPC3 *>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>, 1> Sequence2=const boost::fusion::single_view<NormalizedVector>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>, 1> Sequence2=const boost::fusion::single_view<NormalizedVector *>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>, 1> Sequence2=const boost::fusion::single_view<D>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>, 1> Sequence2=const boost::fusion::single_view<D *>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>, 1> Sequence2=const boost::fusion::single_view<C>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>, 1> Sequence2=const boost::fusion::single_view<C *>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>, 1> Sequence2=const boost::fusion::single_view<A>, 1> Args=boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(247) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function,From,To>::apply<boost::fusion::joint_view<Sequence1,Sequence2>>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> From=next_iter_type, 1> To=boost::mpl::v_iter<boost::mpl::vector9<A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *>,9>, 1> Sequence1=const boost::fusion::nil, 1> Sequence2=const boost::fusion::single_view<A *>, 1> Args=boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>> 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(336) : see reference to function template instantiation 'RakNet::_RPC3::InvokeResultCodes RakNet::_RPC3::BoostRPCInvoker<Function>::apply<boost::fusion::nil>(Function,RakNet::_RPC3::InvokeArgs,const Args &)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Args=boost::fusion::nil 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(335) : while compiling class template member function 'RakNet::_RPC3::FunctionPointer RakNet::_RPC3::GetBoundPointer_C<Function>::GetBoundPointer(Function)' 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *) 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3_boost.h(355) : see reference to class template instantiation 'RakNet::_RPC3::GetBoundPointer_C<Function>' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *) 1> ] 1> c:\raknet\dependentextensions\rpc3\rpc3.h(100) : see reference to function template instantiation 'RakNet::_RPC3::FunctionPointer RakNet::_RPC3::GetBoundPointer<void(__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *)>(Function)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *) 1> ] 1> c:\raknet\samples\rpc3\rpc3sample.cpp(127) : see reference to function template instantiation 'bool RakNet::RPC3::RegisterFunction<void(__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *)>(const char *,Function)' being compiled 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *) 1> ] 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : error C2039: 'result_type' : is not a member of 'boost::fusion::detail::invoke_impl<Function,Sequence>' 1> with 1> [ 1> Function=void (__cdecl *)(A *,A &,C *,C &,D *,D &,NormalizedVector *,NormalizedVector &,RakNet::RPC3 *), 1> Sequence=const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::joint_view<const boost::fusion::nil,const boost::fusion::single_view<A *>>,const boost::fusion::single_view<A>>,const boost::fusion::single_view<C *>>,const boost::fusion::single_view<C>>,const boost::fusion::single_view<D *>>,const boost::fusion::single_view<D>>,const boost::fusion::single_view<NormalizedVector *>>,const boost::fusion::single_view<NormalizedVector>>,const boost::fusion::single_view<RakNet::RPC3 *>> 1> ] 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : error C2146: syntax error : missing ';' before identifier 'type' 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : error C2208: 'boost::type' : no members defined using this type 1>c:\boost_1_35_0\boost\fusion\functional\invocation\invoke.hpp(159) : fatal error C1903: unable to recover from previous error(s); stopping compilation

AMDG Kevin Jenkins wrote:
First time poster. I found Boost over the weekend and have to say it's a great library! It's enabled me to do things in C++ I didn't think were possible before.
I'm posting because I'm having a problem with boost::fusion::invoke. I'm using it to call a function with a list of predefined parameters. I found that if I have 6 or fewer parameters, everything compiles fine. If I have 7 or more parameters, it doesn't compile. I verified that it's not the parameters by removing the first 4 and leaving the last 5 (which was OK).
compile with -DBOOST_FUSION_INVOKE_MAX_ARITY=9 See http://svn.boost.org/trac/boost/browser/trunk/boost/fusion/functional/invoca... In Christ, Steven Watanabe

Thanks! If I may make a couple of suggestions: 1. Add a comment in invoke.hpp line 102 that if you get the error I just saw, that's what you need to do. 2. Add a similar comment to the documentation for boost::fusion::invoke These are the first places I looked. I thought the problem was in my own code at first, so spent a lot of time before I was able to write a sensible list post. :) Steven Watanabe wrote:
AMDG
Kevin Jenkins wrote:
First time poster. I found Boost over the weekend and have to say it's a great library! It's enabled me to do things in C++ I didn't think were possible before.
I'm posting because I'm having a problem with boost::fusion::invoke. I'm using it to call a function with a list of predefined parameters. I found that if I have 6 or fewer parameters, everything compiles fine. If I have 7 or more parameters, it doesn't compile. I verified that it's not the parameters by removing the first 4 and leaving the last 5 (which was OK).
compile with -DBOOST_FUSION_INVOKE_MAX_ARITY=9
See http://svn.boost.org/trac/boost/browser/trunk/boost/fusion/functional/invoca...
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Steven Watanabe wrote:
AMDG
Kevin Jenkins wrote:
First time poster. I found Boost over the weekend and have to say it's a great library! It's enabled me to do things in C++ I didn't think were possible before.
I'm posting because I'm having a problem with boost::fusion::invoke. I'm using it to call a function with a list of predefined parameters. I found that if I have 6 or fewer parameters, everything compiles fine. If I have 7 or more parameters, it doesn't compile. I verified that it's not the parameters by removing the first 4 and leaving the last 5 (which was OK).
compile with -DBOOST_FUSION_INVOKE_MAX_ARITY=9
See http://svn.boost.org/trac/boost/browser/trunk/boost/fusion/functional/invoca...
Seems this is not documented? Tobias? http://tinyurl.com/6dla5j Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net
participants (3)
-
Joel de Guzman
-
Kevin Jenkins
-
Steven Watanabe