或曰

水曜日, 7月 30, 2008

luabind

組込用途のスクリプト言語 Lua と C++ の間で、関数相互呼び出しを実現するためのライブラリ。

ドキュメントから抜粋。

class testclass
{
public:
testclass(const std::string& s): m_string(s) {}
void print_string() { std::cout << m_string << "\n"; }

private:
std::string m_string;
};



上記の C++ クラスを Lua から呼び出すため lua_State* L に登録するコード。

using namespace luabind;
module(L)
[
class_<testclass>("testclass")
.def(constructor<const std::string&>())
.def("print_string", &testclass::print_string)
];


ソース眺めてみたら Boost MPL を使って、バリバリのテンプレートメタプログラミングになってる。やるなぁ。ちょっとまじめに読んでみるか。

ラベル:

0 件のコメント:

コメントを投稿



この投稿へのリンク:

リンクを作成

<< ホーム