diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2018-12-13 11:44:21 -0500 |
---|---|---|
committer | Henrik Edin <henrik.edin@mongodb.com> | 2018-12-18 09:12:51 -0500 |
commit | c28cb6852fca219d6f0262000c378e982b7ca9ff (patch) | |
tree | e06e74d1729e644db7c4dc2e5ecd529145b2f34c /src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp | |
parent | 05ebfef11161b96ba0e8374f34c359a403097f60 (diff) | |
download | mongo-c28cb6852fca219d6f0262000c378e982b7ca9ff.tar.gz |
SERVER-38458 Upgrade boost to version 1.69
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp')
-rw-r--r-- | src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp b/src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp new file mode 100644 index 00000000000..b230692d803 --- /dev/null +++ b/src/third_party/boost-1.69.0/boost/test/utils/rtti.hpp @@ -0,0 +1,63 @@ +// (C) Copyright Gennadiy Rozental 2001. +// 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$ +// +// Description : simple facilities for accessing type information at runtime +// *************************************************************************** + +#ifndef BOOST_TEST_UTILS_RTTI_HPP +#define BOOST_TEST_UTILS_RTTI_HPP + +// C Runtime +#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_t +type_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_TEST_UTILS_RTTI_HPP |