Pregunta

I'm having some problems getting Luabind to work with the 'pure_out_value' property for a function. In my case, Luabind is erroring during compile saying that the templates do not contain specific functions that are required to use the property.

The code being used is very similar to the one in test_policies.cpp that comes with Luabind:

class IConfiguration
{
    int GetString( const char* className, const char* entryName, char** ppszOut );
};

module( L )
[
    class_< IConfiguration >( "IConfiguration" )
        .def( "GetString", &IConfiguration::GetString, pure_out_value(_3) )
];

The errors I get when I try to compile this:

'apply' : is not a member of 'luabind::detail::pure_out_value_policy<N,Policies>::only_accepts_nonconst_references_or_pointers'
'consumed_args' : is not a member of 'luabind::detail::pure_out_value_policy<N,Policies>::only_accepts_nonconst_references_or_pointers'
'consumed_args' : is not a member of 'luabind::detail::pure_out_value_policy<N,Policies>::only_accepts_nonconst_references_or_pointers'
'converter_postcall' : is not a member of 'luabind::detail::pure_out_value_policy<N,Policies>::only_accepts_nonconst_references_or_pointers'
'match' : is not a member of 'luabind::detail::pure_out_value_policy<N,Policies>::only_accepts_nonconst_references_or_pointers'

Information pertaining to the environment:

  • Lua 5.1.4 (with bitwise patch)
  • Luabind 0.9.1
  • Boost 1.53
  • Visual Studio 2012 w/Update 1 (Compiling with v110_xp setting.)

I have also tried with the publicly known patched version of Luabind for 5.2 (still supports 5.1 too) which can be found here: https://bitbucket.org/cinderblocks/luabind

The rest of Luabind seems to work fine, just not the pure_out_value policy though.

¿Fue útil?

Solución

And of course after posting for help I figured out the problem. Love when that happens..

For anyone in the similar issue, the problem was with the arg number I was using with pure_out_value. In my above case, since the arguments are part of a class member function I forgot to account for the 'this' argument that is happening automatically. So instead of _3 it should be _4.

Works great now. :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top