luabind - 可变数量的参数

Con*_*501 1 parameters lua luabind

如何使用接受可变数量参数的luabind绑定函数?基本上,我想编写自己的print()函数.

我知道objectluabind 中的类作为参数可以接受任何数据类型,最好是接收动态表luabind::object作为参数.

Con*_*501 5

我在纯lua C API和luabind之间进行了混合:

int myPrint(lua_State* L)
{
    int argCount = lua_gettop(L);

    for(int i = 1; i <= argCount; i++)
    {
        luabind::object obj(luabind::from_stack(L, i));

        switch(luabind::type(obj))
        {
            case LUA_TSTRING:
                cout << luabind::object_cast<std::string>(obj);
                break;
            case LUA_TNUMBER:
                cout << luabind::object_cast<double>(obj);
                break;
            case LUA_TBOOLEAN:
                cout << boolalpha << luabind::object_cast<bool>(obj);
                break;
            case LUA_TNIL:
                cout << "#Nil#";
                break;
            default:
                cout << "#Unknown type '" << luabind::type(obj) << "'#";
                break;
        }
    }

    cout << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)