⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invariant_check.hpp

📁 LINUX下
💻 HPP
字号:
// Copyright Daniel Wallin 2004. Use, modification and distribution is// subject to the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#ifndef TORRENT_INVARIANT_ACCESS_HPP_INCLUDED#define TORRENT_INVARIANT_ACCESS_HPP_INCLUDED#include "libtorrent/assert.hpp"namespace libtorrent{	class invariant_access	{	public:		template<class T>		static void check_invariant(T const& self)		{			self.check_invariant();		}	};	template<class T>	void check_invariant(T const& x)	{		invariant_access::check_invariant(x);	}	struct invariant_checker {};	template<class T>	struct invariant_checker_impl : invariant_checker	{		invariant_checker_impl(T const& self_)			: self(self_)		{			try			{				check_invariant(self);			}			catch (...)			{				TORRENT_ASSERT(false);			}		}		~invariant_checker_impl()		{			try			{				check_invariant(self);			}			catch (...)			{				TORRENT_ASSERT(false);			}		}		T const& self;	};	template<class T>	invariant_checker_impl<T> make_invariant_checker(T const& x)	{		return invariant_checker_impl<T>(x);	}}#if !defined NDEBUG && !defined TORRENT_DISABLE_INVARIANT_CHECKS#define INVARIANT_CHECK \	invariant_checker const& _invariant_check = make_invariant_checker(*this); \	(void)_invariant_check; \	do {} while (false)#else#define INVARIANT_CHECK do {} while (false)#endif#endif // TORRENT_INVARIANT_ACCESS_HPP_INCLUDED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -