亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? object_funs.hpp

?? 國外魔獸世界-NOPserver源碼,2004年版
?? HPP
字號(hào):
// Copyright (c) 2003 Daniel Wallin and Arvid Norberg

// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
// ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
// OR OTHER DEALINGS IN THE SOFTWARE.

#ifndef LUABIND_OBJECT_PROXY_HPP_INCLUDED
#define LUABIND_OBJECT_PROXY_HPP_INCLUDED

#include <boost/optional.hpp>

#include <luabind/config.hpp>
#include <luabind/detail/policy.hpp>
#include <luabind/detail/error.hpp>
#include <luabind/detail/convert_to_lua.hpp>

namespace luabind
{

	namespace detail
	{

		template<class T, class Obj, class Policies>
		inline T object_cast_impl(const Obj& obj, const Policies&)
		{
			typedef typename detail::find_conversion_policy<0, Policies>::type converter_policy;
			typename converter_policy::template generate_converter<T, lua_to_cpp>::type converter;

			obj.pushvalue();

			lua_State* L = obj.lua_state();
			detail::stack_pop p(L, 1);

#ifndef LUABIND_NO_ERROR_CHECKING

			if (converter.match(L, LUABIND_DECORATE_TYPE(T), -1) < 0)
			{
#ifndef LUABIND_NO_EXCEPTIONS
				throw cast_failed(L, LUABIND_TYPEID(T));
#else
				cast_failed_callback_fun e = detail::error_callback::get().cast;
				if (e) e(L, LUABIND_TYPEID(T));

				assert(0 && "object_cast failed. If you want to handle this error use luabind::set_error_callback()");
				std::terminate();
#endif
			}
#endif

			return converter.apply(L, LUABIND_DECORATE_TYPE(T), -1);
		}

		template<class T, class Obj, class Policies>
		boost::optional<T> object_cast_nothrow_impl(const Obj& obj, const Policies&)
		{
			typedef typename detail::find_conversion_policy<0, Policies>::type converter_policy;
			typename converter_policy::template generate_converter<T, lua_to_cpp>::type converter;

			obj.pushvalue();

			lua_State* L = obj.lua_state();
			detail::stack_pop p(L, 1);

#ifndef LUABIND_NO_ERROR_CHECKING

			if (converter.match(L, LUABIND_DECORATE_TYPE(T), -1) < 0)
				return boost::optional<T>();
#endif

			return boost::optional<T>(converter.apply(L, LUABIND_DECORATE_TYPE(T), -1));
		}
	}
	
	template<class T>
	T object_cast(const object& obj)
	{ return detail::object_cast_impl<T>(obj, detail::null_type()); }
	
	template<class T, class Policies>
	T object_cast(const object& obj, const Policies& p)
	{ return detail::object_cast_impl<T>(obj, p); }
	
	template<class T>
	boost::optional<T> object_cast_nothrow(const object& obj)
	{ return detail::object_cast_nothrow_impl<T>(obj, detail::null_type()); }

	template<class T, class Policies>
	boost::optional<T> object_cast_nothrow(const object& obj, const Policies& p)
	{ return detail::object_cast_nothrow_impl<T>(obj, p); }
	

	template<class T>
	T object_cast(const detail::proxy_object& obj)
	{ return detail::object_cast_impl<T>(obj, detail::null_type()); }
	
	template<class T, class Policies>
	T object_cast(const detail::proxy_object& obj, const Policies& p)
	{ return detail::object_cast_impl<T>(obj, p); }
	
	template<class T>
	boost::optional<T> object_cast_nothrow(const detail::proxy_object& obj)
	{ return detail::object_cast_nothrow_impl<T>(obj, detail::null_type()); }
	
	template<class T, class Policies>
	boost::optional<T> object_cast_nothrow(const detail::proxy_object& obj, const Policies& p)
	{ return detail::object_cast_nothrow_impl<T>(obj, p); }

	
	template<class T>
	T object_cast(const detail::proxy_raw_object& obj)
	{ return detail::object_cast_impl<T>(obj, detail::null_type()); }

	template<class T, class Policies>
	T object_cast(const detail::proxy_raw_object& obj, const Policies& p)
	{ return detail::object_cast_impl<T>(obj, p); }

	template<class T>
	boost::optional<T> object_cast_nothrow(const detail::proxy_raw_object& obj)
	{ return detail::object_cast_nothrow_impl<T>(obj, detail::null_type()); }

	template<class T, class Policies>
	boost::optional<T> object_cast_nothrow(const detail::proxy_raw_object& obj, const Policies& p)
	{ return detail::object_cast_nothrow_impl<T>(obj, p); }

	
	template<class T>
	T object_cast(const detail::proxy_array_object& obj)
	{ return detail::object_cast_impl<T>(obj, detail::null_type()); }
	
	template<class T, class Policies>
	T object_cast(const detail::proxy_array_object& obj, const Policies& p)
	{ return detail::object_cast_impl<T>(obj, p); }
	
	template<class T>
	boost::optional<T> object_cast_nothrow(const detail::proxy_array_object& obj)
	{ return detail::object_cast_nothrow_impl<T>(obj, detail::null_type()); }
	
	template<class T, class Policies>
	boost::optional<T> object_cast_nothrow(const detail::proxy_array_object& obj, const Policies& p)
	{ return detail::object_cast_nothrow_impl<T>(obj, p); }




	inline object get_globals(lua_State* L)
	{
		lua_pushvalue(L, LUA_GLOBALSINDEX);
		int ref = detail::ref(L);
		return object(L, ref, true/*object::reference()*/);
	}

	inline object get_registry(lua_State* L)
	{
		lua_pushvalue(L, LUA_REGISTRYINDEX);
		int ref = detail::ref(L);
		return object(L, ref, true/*object::reference()*/);
	}

	inline object newtable(lua_State* L)
	{
		lua_newtable(L);
		int ref = detail::ref(L);
		return object(L, ref, true/*object::reference()*/);
	}
}

/*

struct A
{
};

object f = class_<A>();

A* ptr = object_cast<A*>(f(), adopt(_1));

delete ptr;

*/

#endif // LUABIND_OBJECT_PROXY_HPP_INCLUDED

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色8久久精品久久久久久蜜| 成人福利在线看| 欧美日韩激情一区二区| 综合激情成人伊人| 91在线视频在线| 亚洲欧美日韩成人高清在线一区| 成人白浆超碰人人人人| 一区二区中文字幕在线| 成人av午夜影院| 一区二区三区久久久| 欧美日韩国产首页| 老色鬼精品视频在线观看播放| 精品欧美久久久| 国产精品亚洲午夜一区二区三区 | 精品伊人久久久久7777人| 日韩免费看的电影| 国产夫妻精品视频| 中文字幕五月欧美| 欧美日韩日本视频| 国内精品在线播放| 中文字幕中文字幕中文字幕亚洲无线| 91视频免费看| 日本成人在线电影网| 日本一区二区三区电影| 91成人在线免费观看| 日本va欧美va欧美va精品| 久久夜色精品一区| 色婷婷综合久色| 日韩电影在线观看电影| 国产婷婷精品av在线| 色噜噜狠狠成人中文综合 | 六月丁香综合在线视频| 欧美激情自拍偷拍| 欧美老女人在线| 国产aⅴ综合色| 日韩电影一二三区| 亚洲欧洲日韩一区二区三区| 欧美精品777| 成人免费视频播放| 日韩中文字幕av电影| 国产精品三级av在线播放| 欧美老肥妇做.爰bbww视频| 丁香六月久久综合狠狠色| 亚洲成人av一区二区三区| 久久久久99精品国产片| 欧美视频在线观看一区二区| 国产精品一区一区三区| 亚洲午夜精品久久久久久久久| 国产午夜一区二区三区| 欧美视频中文字幕| 91最新地址在线播放| 国产在线精品一区二区| 亚洲成av人片一区二区梦乃| 中文字幕电影一区| 精品国产91乱码一区二区三区| 欧美午夜一区二区三区免费大片| 成人免费黄色在线| 国产在线麻豆精品观看| 五月激情六月综合| 一区二区三区加勒比av| 国产精品美女久久福利网站| 精品黑人一区二区三区久久 | 中文字幕二三区不卡| 精品欧美黑人一区二区三区| 欧美久久久久久蜜桃| 在线亚洲免费视频| 91在线视频官网| 成人福利视频网站| 国产成人8x视频一区二区| 韩日av一区二区| 免费xxxx性欧美18vr| 亚洲午夜羞羞片| 一区二区三区日韩在线观看| |精品福利一区二区三区| 国产精品欧美久久久久无广告| 久久精品人人做人人综合 | 国产日韩欧美激情| 欧美大片在线观看一区| 日韩一区二区三区免费观看| 欧美一区二区三区小说| 91精品国产综合久久久久久久| 欧美三级电影在线观看| 91污在线观看| 色婷婷综合激情| 欧美日韩专区在线| 欧美久久久久免费| 91精品国产91久久久久久一区二区| 欧美视频在线一区| 91精品久久久久久久91蜜桃| 日韩视频一区在线观看| 欧美一区二区免费视频| 精品国产一二三区| 久久综合狠狠综合| 中文字幕的久久| 亚洲另类在线一区| 亚洲成在人线免费| 免费看日韩精品| 国产综合久久久久久鬼色 | 综合精品久久久| 一区二区三区在线观看视频 | 日本不卡视频在线| 久热成人在线视频| 高清在线不卡av| 91视频国产资源| 欧美美女直播网站| 日韩欧美不卡在线观看视频| 国产亚洲精品福利| 亚洲一区在线免费观看| 免费在线观看一区二区三区| 国产一区二区女| 一本大道久久a久久精品综合| 欧美精品在线观看一区二区| 欧美刺激脚交jootjob| 国产丝袜美腿一区二区三区| 亚洲黄色小视频| 美女一区二区久久| 不卡视频在线看| 欧美一级一区二区| 中文字幕不卡一区| 偷偷要91色婷婷| 国产成人精品亚洲日本在线桃色| 91香蕉视频污| 精品国产网站在线观看| 亚洲嫩草精品久久| 精品在线免费视频| 91久久精品一区二区二区| 欧美成人性战久久| 亚洲一区二区三区在线看| 久久国产生活片100| 在线欧美日韩精品| 久久免费视频一区| 日韩成人免费看| 色哟哟一区二区| 久久日韩精品一区二区五区| 亚洲精品免费视频| 国产主播一区二区三区| 欧美日韩国产中文| 国产精品成人免费精品自在线观看| 日本不卡一二三| 欧美日韩中文一区| 欧美高清在线一区二区| 秋霞av亚洲一区二区三| 色一区在线观看| 国产欧美一区二区精品婷婷| 日韩—二三区免费观看av| 色欧美片视频在线观看在线视频| 久久综合给合久久狠狠狠97色69| 日韩影院精彩在线| 91香蕉视频黄| 国产精品国产三级国产普通话蜜臀| 另类中文字幕网| 欧美三级电影一区| 亚洲一区二区在线播放相泽| 成人激情视频网站| 91麻豆精品国产综合久久久久久| 亚洲欧美一区二区三区极速播放| 国产麻豆精品久久一二三| 91精品国产综合久久久久久久久久 | 精品一区二区三区在线播放| 欧美日韩高清一区二区| 亚洲日穴在线视频| 99v久久综合狠狠综合久久| 日韩欧美亚洲一区二区| 亚洲成人综合网站| 高清不卡在线观看| 久久奇米777| 一区二区三区欧美在线观看| av电影天堂一区二区在线| 久久久国产一区二区三区四区小说 | 91视频一区二区| 国产精品午夜在线| 国产精品亚洲成人| 国产调教视频一区| 成人禁用看黄a在线| 欧美国产日韩在线观看| 国产精品一区免费视频| 久久精品欧美一区二区三区麻豆| 免费一级片91| 日韩免费观看高清完整版 | 欧美成人三级在线| 国内外成人在线| xfplay精品久久| 国产一区二区三区综合| xnxx国产精品| 成人午夜视频在线观看| 中文字幕av资源一区| 99久久免费精品高清特色大片| 国产精品国产三级国产| 97久久超碰国产精品| 亚洲二区在线视频| 精品国产免费一区二区三区四区| 国产一区二区在线视频| 日本一区二区三区久久久久久久久不| 99久久免费精品| 亚洲一区二区美女| 日韩欧美在线123| 丰满亚洲少妇av| 一区二区三区欧美视频| 91精品综合久久久久久| 九九精品视频在线看|