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 + -
显示快捷键?