diff -r 000000000000 -r bde4ae8d615e os/ossrv/ossrv_pub/boost_apis/boost/test/utils/rtti.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/test/utils/rtti.hpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,76 @@ +// (C) Copyright Gennadiy Rozental 2005. +// 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: rtti.hpp,v $ +// +// Version : $Revision: 1.2 $ +// +// Description : simple facilities for accessing type information at runtime +// *************************************************************************** + +#ifndef BOOST_TEST_RTTI_HPP_062604GER +#define BOOST_TEST_RTTI_HPP_062604GER + +#include + +namespace boost { + +namespace rtti { + +// ************************************************************************** // +// ************** rtti::type_id ************** // +// ************************************************************************** // + +typedef std::ptrdiff_t id_t; + +namespace rtti_detail { + +template +struct rttid_holder { + static id_t id() { return reinterpret_cast( &inst() ); } + +private: + struct rttid {}; + + static rttid const& inst() { static rttid s_inst; return s_inst; } +}; + +} // namespace rtti_detail + +//____________________________________________________________________________// + +template +inline id_t +type_id() +{ + return rtti_detail::rttid_holder::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() ) + +//____________________________________________________________________________// + +} // namespace rtti + +} // namespace boost + +// ************************************************************************** // +// Revision History: +// +// $Log: rtti.hpp,v $ +// Revision 1.2 2005/05/15 06:45:32 rogeeff +// *** empty log message *** +// +// Revision 1.1 2005/04/12 06:48:12 rogeeff +// Runtime.Param library initial commit +// +// ************************************************************************** // + +#endif // BOOST_RT_RTTI_HPP_062604GER