rtti.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 65 行
HPP
65 行
// (C) Copyright Gennadiy Rozental 2005-2008.// Distributed under 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)// See http://www.boost.org/libs/test for the library home page.//// File : $RCSfile$//// Version : $Revision: 49312 $//// Description : simple facilities for accessing type information at runtime// ***************************************************************************#ifndef BOOST_TEST_RTTI_HPP_062604GER#define BOOST_TEST_RTTI_HPP_062604GER#include <cstddef>namespace boost {namespace rtti {// ************************************************************************** //// ************** rtti::type_id ************** //// ************************************************************************** //typedef std::ptrdiff_t id_t;namespace rtti_detail {template<typename T>struct rttid_holder { static id_t id() { return reinterpret_cast<id_t>( &inst() ); }private: struct rttid {}; static rttid const& inst() { static rttid s_inst; return s_inst; }};} // namespace rtti_detail//____________________________________________________________________________//template<typename T> inline id_ttype_id(){ return rtti_detail::rttid_holder<T>::id();}//____________________________________________________________________________//#define BOOST_RTTI_SWITCH( type_id_ ) if( ::boost::rtti::id_t switch_by_id = type_id_ )#define BOOST_RTTI_CASE( type ) if( switch_by_id == ::boost::rtti::type_id<type>() )//____________________________________________________________________________//} // namespace rtti} // namespace boost#endif // BOOST_RT_RTTI_HPP_062604GER
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?