Luabind pure_out_value拒绝编译

时间:2013-02-11 00:06:10

标签: luabind

我遇到一些问题让Luabind使用函数的'pure_out_value'属性。就我而言,Luabind在编译过程中出错,说模板不包含使用该属性所需的特定函数。

使用的代码与Luabind附带的test_policies.cpp非常相似:

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) )
];

我尝试编译时遇到的错误:

'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'

有关环境的信息:

  • Lua 5.1.4(带有按位补丁)
  • Luabind 0.9.1
  • 提升1.53
  • Visual Studio 2012 w / Update 1(使用v110_xp设置进行编译。)

我也尝试使用Luabind for 5.2的公开修补版本(仍然支持5.1),可以在这里找到: https://bitbucket.org/cinderblocks/luabind

Luabind的其他人似乎工作正常,但不是pure_out_value政策。

1 个答案:

答案 0 :(得分:1)

当然,在张贴求助后,我发现了问题。喜欢这种情况发生..

对于类似问题的任何人,问题在于我使用的pure_out_value的arg编号。在我的上述情况下,由于参数是类成员函数的一部分,我忘了考虑自动发生的'this'参数。所以不是_3而应该是_4。

现在很棒。 :)