神奇的luabind
来源:互联网 发布:java 调用webservice 编辑:程序博客网 时间:2024/04/29 11:01
c++源文件如下
#include
#include
void greet()
{
std::cout << "hello world!/n";
}
void fly()
{
std::cout << "I can fly!/n";
}
extern "C" int init(lua_State* L)
{
using namespace luabind;
open(L);
module(L)
[
def("greet", &greet),
def("fly", &fly)
];
return 0;
}
看了下luabind源码,这个居然是通过标准的C++用法做到的
inline module_ module(lua_State* L, char const* name = 0);
module函数返回module_对象
class LUABIND_API module_
{
public:
module_(lua_State* L_, char const* name);
void operator[](scope s);
private:
lua_State* m_state;
char const* m_name;
};
module_重载了[],接受scope对象
template
scope def(char const* name, F f, Policies const& policies)
{
return scope(std::auto_ptr
new detail::function_registration
}
template
scope def(char const* name, F f)
{
return def(name, f, detail::null_type());
}
def返回scope对象
struct LUABIND_API scope
{
scope();
explicit scope(std::auto_ptr
scope(scope const& other_);
~scope();
scope& operator,(scope s);
void register_(lua_State* L) const;
private:
detail::registration* m_chain;
};
scope重载了,运算符
太优雅了!!!
- 神奇的luabind
- 超越luabind的luaBridge
- luabind 的几个严重问题
- LuaBind --最强大的Lua C++ Bind
- LuaBind --最强大的Lua C++ Bind
- luabind 0.8.1的编译(VC71编译)
- 构建 Lua、LuaBind 的 C++ 编译环境
- LuaBind --最强大的Lua C++ Bind
- LuaBind --最强大的Lua C++ Bind
- lua的封装luawrapper-luabind-cpplua-tolua
- LuaBind --最强大的Lua C++ Bind
- luabind windows环境下的搭建
- LuaBind --最强大的Lua C++ Bind
- 使用luabind绑定box2d的lua接口
- LuaBind --最强大的Lua C++ Bind
- Linux下Luabind编译和使用环境的搭建
- 神奇的的调色板
- 神奇的*号
- Android中am命令用法
- 游戏缩写
- Howto install Sun Java Runtime Environment (JRE) in Ubuntu 10.04 (Lucid Lynx)
- CGI程序与diameter的交互
- Oracle高级技巧,高级查询
- 神奇的luabind
- c#教程
- 关于恢复数据(从A数据库恢复到B数据库)
- 初来咋到
- 初来咋到
- css hack
- 工作输出清单
- Loki系列一:优雅的Typelist
- LuaBind --最强大的Lua C++ Bind