当前位置: 首页>>代码示例>>C++>>正文


C++ state::push_value方法代码示例

本文整理汇总了C++中state::push_value方法的典型用法代码示例。如果您正苦于以下问题:C++ state::push_value方法的具体用法?C++ state::push_value怎么用?C++ state::push_value使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在state的用法示例。


在下文中一共展示了state::push_value方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: allocUserdata

static typename lutok::LObject<T>::Index lutok::LObject<T>::push(state& s, T* instance, bool gc) {
	if (!instance) {
		s.push_nil();
		return 0;
	}

	luaL_getmetatable(s._pimpl->lua_state, T::s_lunaClassName);
	if (s.is_nil()) {
		luaL_error(s._pimpl->lua_state, "[Luna::%s] Class %s has not been commited!", __func__, T::s_lunaClassName);
		return 0;
	}
	lutok::LObject<T>::Index metatable = s.get_top();

	subtable(s, metatable, "userdata", "v");
	lutok::LObject<T>::Userdata * userdata = allocUserdata(s, metatable, instance);
	if (userdata) {
		userdata->pT = instance;
		s.push_value(metatable);
		s.set_metatable();
		if (!gc) {
			lua_checkstack(s._pimpl->lua_state, 3);
			subtable(s, metatable, "unmanaged", "k");

			s.push_value(-2);
			s.push_boolean(1);
			s.set_table();
			s.pop(1);
		}
	}
	lua_replace(s._pimpl->lua_state, metatable);
	lua_settop(s._pimpl->lua_state, metatable);
	return metatable;
}
开发者ID:swc4848a,项目名称:LuaSDL-2.0,代码行数:33,代码来源:lobject.cpp

示例2:

static void lutok::LObject<T>::weaktable(state& s,  const std::string& mode) {
	s.new_table();
	s.push_value();
	s.set_metatable();

	s.push_literal("__mode");
	s.push_string(mode);
	s.set_table();
}
开发者ID:swc4848a,项目名称:LuaSDL-2.0,代码行数:9,代码来源:lobject.cpp


注:本文中的state::push_value方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。