1

関数の 'pure_out_value' プロパティで Luabind を動作させるのに問題があります。私の場合、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 (ビット単位のパッチあり)
  • ルバインド 0.9.1
  • ブースト 1.53
  • Visual Studio 2012 w/Update 1 (v110_xp 設定でコンパイル)

また、5.2 用の既知のパッチ適用済みバージョンの Luabind (まだ 5.1 もサポートしています) を試してみました

Luabind の残りの部分は正常に動作しているように見えますが、pure_out_value ポリシーだけではありません。

4

1 に答える 1

1

そしてもちろん、助けを求めて投稿した後、私は問題を理解しました。それが起こるときの愛..

同様の問題を抱えている人にとっては、pure_out_value で使用していた引数番号に問題がありました。上記のケースでは、引数はクラス メンバー関数の一部であるため、自動的に発生する「this」引数を説明するのを忘れていました。したがって、_3 の代わりに _4 にする必要があります。

今はうまくいきます。:)

于 2013-02-11T00:32:23.470 に答える