2011-06-20 27 views
1

私はluabindを使用してluaにバインドした特定の関数でわずかな問題に遭遇し始めました。これらの関数は引数としてstd:stringオブジェクトを返すか、または取ります。そして、C++が最終的に取得するデータはガーベジです。なぜなら、luaはデータ型を認識しないからです。私は手動でstd :: classesを必要以上にバインドしても問題ありませんが、C標準ライブラリのどこかですでに行われているかどうか疑問に思っています。私はバインディングライブラリの任意の並べ替えを見つけることができません。そのようなプロジェクトが存在するかどうかは誰にも分かりますか?標準ライブラリのLuaBindバインディング?

+0

小文字:std :: stringはC標準ライブラリの一部ではありません。これはC++標準ライブラリの一部です。 –

答えて

3

Luabindは既にLua文字列とstd :: string(char *と同様)の間で自動変換を行っています。だからあなたはパラメータとしてそれらを使用することができるか、またはちょうど良い値を返すことができるはずです。もしあなたがそうすることができないのであれば、あなたの側でも、ルアビンドの側でも何かがうまくいかないでしょう。

Luabindには、STLスタイルのコンテナに準拠した戻り値の型をLua反復関数に変換するためのan adapterもあります。このように、あなたはこのようなforループでそれを使用することができます。その他にも

for object in CppFuncThatReturnsStdVector() do 
    --Do something with "object" 
end 

を、私は直接のLuaに、標準C++ライブラリを公開Luabindライブラリーを作製するために、特定の努力を認識していないです。それはとにかく良い考えではないでしょう。 Luaテーブルは、STLスタイルのコンテナに必要なほとんどのニーズをカバーしています。他のもののほとんどは、Luaが独自の標準ライブラリで処理できるものです。

+0

私は参照してください。私は必ずしも、Luaに認識可能な型を公開するだけで、それ自体が_機能性を結びつけるのには興味がありませんでした。迅速な返信をありがとう。 – Ketura

関連する問題