関数の '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 ポリシーだけではありません。