Re: issue with out_value policy
feng qiu <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <[email protected]> |
Hello, Does the out_value policy from latest release(0.9) work for you? It doesn't work for me at all. On 17 April 2011 15:57, feng qiu <[email protected]> wrote: > Hello everyone > I am new to luabind, i got some problems on using out_value policy. > Here are errors while compiling with visual studio 2008, luabind 0.9.1, lua > 5.1.4,boost 1.46.1 > > I did a search via google, but there is no useful information for this > problem. > Does anybody have the same issue or know how to resolve it? > Thanks in advance. > > code: > > ------------------------------------------------------------------------------------------------------- > void TestOut(int& iValue) > { > iValue+=100; > } > ......... > luabind::module(L) > [ > luabind::def("TestOut",&TestOut,luabind::out_value(_1)) > ]; > > ------------------------------------------------------------------------------------------------------- > errors: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 1>f:\libs\luabind-0.9.1\luabind\out_value_policy.hpp(105) : error C2352: > 'luabind::native_converter_base<T>::match' : illegal call of non-static > member function > 1> with > 1> [ > 1> T=int > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\detail\policy.hpp(606) : see > declaration of 'luabind::native_converter_base<T>::match' > 1> with > 1> [ > 1> T=int > 1> ] > 1> > f:\libs\boost_1_46_1\boost\preprocessor\iteration\detail\local.hpp(34) : > see reference to function template instantiation 'int > luabind::detail::out_value_converter<Size,Policies>::match<T>(lua_State > *,luabind::detail::by_reference<T>,int)' being compiled > 1> with > 1> [ > 1> Size=4, > 1> Policies=luabind::detail::null_type, > 1> T=int > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\detail\call.hpp(89) : see reference > to function template instantiation 'int > luabind::detail::invoke_normal<void(__cdecl *)(int > &),boost::mpl::vector2<T0,T1>,Policies>(lua_State *,const > luabind::detail::function_object &,luabind::detail::invoke_context &,const F > &,Signature,const Policies &,boost::mpl::long_<N>,boost::mpl::true_)' being > compiled > 1> with > 1> [ > 1> T0=void, > 1> T1=int &, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type>, > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &>, > 1> N=1 > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\detail\call.hpp(101) : see > reference to function template instantiation 'int > luabind::detail::invoke0<void(__cdecl *)(int > &),boost::mpl::vector2<T0,T1>,Policies,boost::is_void<void>>(lua_State > *,const luabind::detail::function_object &,luabind::detail::invoke_context > &,const F &,Signature,const Policies &,IsVoid,boost::mpl::false_)' being > compiled > 1> with > 1> [ > 1> T0=void, > 1> T1=int &, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type>, > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &>, > 1> IsVoid=boost::is_void<void> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\make_function.hpp(41) : see > reference to function template instantiation 'int > luabind::detail::invoke<void(__cdecl *)(int > &),boost::mpl::vector2<T0,T1>,Policies>(lua_State *,const > luabind::detail::function_object &,luabind::detail::invoke_context &,const F > &,Signature,const Policies &)' being compiled > 1> with > 1> [ > 1> T0=void, > 1> T1=int &, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type>, > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\make_function.hpp(40) : while > compiling class template member function 'int > luabind::detail::function_object_impl<F,Signature,Policies>::call(lua_State > *,luabind::detail::invoke_context &) const' > 1> with > 1> [ > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &>, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\make_function.hpp(108) : see > reference to class template instantiation > 'luabind::detail::function_object_impl<F,Signature,Policies>' being compiled > 1> with > 1> [ > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &>, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\function.hpp(28) : see reference to > function template instantiation 'luabind::adl::object > luabind::make_function<void(__cdecl *)(int > &),boost::mpl::vector2<T0,T1>,Policies>(lua_State *,F,Signature,Policies)' > being compiled > 1> with > 1> [ > 1> T0=void, > 1> T1=int &, > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type>, > 1> F=void (__cdecl *)(int &), > 1> Signature=boost::mpl::vector2<void,int &> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\function.hpp(27) : while compiling > class template member function 'void > luabind::detail::function_registration<F,Policies>::register_(lua_State *) > const' > 1> with > 1> [ > 1> F=void (__cdecl *)(int &), > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type> > 1> ] > 1> f:\libs\luabind-0.9.1\luabind\function.hpp(50) : see reference to > class template instantiation > 'luabind::detail::function_registration<F,Policies>' being compiled > 1> with > 1> [ > 1> F=void (__cdecl *)(int &), > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type> > 1> ] > 1> f:\projects\my projects\luabindtest\luabindtest\main.cpp(91) : > see reference to function template instantiation 'luabind::scope > luabind::def<void(__cdecl *)(int &),luabind::detail::policy_cons<H,T>>(const > char *,F,const Policies &)' being compiled > 1> with > 1> [ > 1> > H=luabind::detail::out_value_policy<1,luabind::detail::null_type>, > 1> T=luabind::detail::null_type, > 1> F=void (__cdecl *)(int &), > 1> > Policies=luabind::detail::policy_cons<luabind::detail::out_value_policy<1,luabind::detail::null_type>,luabind::detail::null_type> > 1> ] > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > -- > Charlie > -- Q.. ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user