C++ SLB中的绑定单态
我有一个singleton类,我想绑定它供lua使用。我正在使用SLB(简单Lua活页夹)。我真的不知道怎么做。我所有的想法都行不通。有人吗C++ SLB中的绑定单态,c++,lua,singleton,C++,Lua,Singleton,我有一个singleton类,我想绑定它供lua使用。我正在使用SLB(简单Lua活页夹)。我真的不知道怎么做。我所有的想法都行不通。有人吗 void Logger::export_class_to_lua(SLB::Manager *m) { SLB::Class< Logger, SLB::Instance::NoCopyNoDestroy >("Logger",m) .set("getInstance",&Logger::getInstance)
void Logger::export_class_to_lua(SLB::Manager *m) {
SLB::Class< Logger, SLB::Instance::NoCopyNoDestroy >("Logger",m)
.set("getInstance",&Logger::getInstance)
.set("log",&Logger::log)
.set("info",&Logger::info)
.set("warning",&Logger::warning)
.set("error",&Logger::error)
.set("fatal",&Logger::fatal);
}
void记录器::将类导出到lua(SLB::Manager*m){
SLB::Class(“Logger”,m)
.set(“getInstance”,&Logger::getInstance)
.set(“日志”,&Logger::log)
.set(“info”、&Logger::info)
.set(“警告”、&Logger::警告)
.set(“错误”,&Logger::错误)
.set(“致命的”,&Logger::致命的);
}
使用您的代码执行以下操作:
void Logger::export_class_to_lua(SLB::Manager *m) {
SLB::Class< Logger, SLB::Instance::NoCopyNoDestroy >("Logger",m)
//.set("getInstance",&Logger::getInstance) // OMIT THIS
.set("log",&Logger::log)
.set("info",&Logger::info)
.set("warning",&Logger::warning)
.set("error",&Logger::error)
.set("fatal",&Logger::fatal);
// Next we set global variable within LUA to access the Singleton
SLB::setGlobal<Logger*>(&(*lua_State), getInstance(), "logger");
}
假设日志和错误函数采用const char*或其他形式。.set(“foo”,std::bind(&Logger::foo,Logger::getInstance())
假设getInstance
返回指针。如果通过引用返回,则获取地址。
logger:log("Logging some information.")
logger:error("An error has occured.")