1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/serialization/is_abstract.hpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,52 @@
1.4 +#ifndef BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP
1.5 +#define BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP
1.6 +
1.7 +// MS compatible compilers support #pragma once
1.8 +#if defined(_MSC_VER) && (_MSC_VER >= 1020)
1.9 +# pragma once
1.10 +#endif
1.11 +
1.12 +/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
1.13 +// is_abstract_class.hpp:
1.14 +
1.15 +// (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey
1.16 +// Use, modification and distribution is subject to the Boost Software
1.17 +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
1.18 +// http://www.boost.org/LICENSE_1_0.txt)
1.19 +
1.20 +// See http://www.boost.org for updates, documentation, and revision history.
1.21 +
1.22 +#include <boost/config.hpp>
1.23 +#include <boost/mpl/bool.hpp>
1.24 +#include <boost/type_traits/is_abstract.hpp>
1.25 +
1.26 +namespace boost {
1.27 +namespace serialization {
1.28 + template<class T>
1.29 + struct is_abstract {
1.30 + // default to false if not supported
1.31 + #ifdef BOOST_NO_IS_ABSTRACT
1.32 + typedef BOOST_DEDUCED_TYPENAME mpl::bool_<false> type;
1.33 + BOOST_STATIC_CONSTANT(bool, value = false);
1.34 + #else
1.35 + typedef BOOST_DEDUCED_TYPENAME boost::is_abstract<T>::type type;
1.36 + BOOST_STATIC_CONSTANT(bool, value = type::value);
1.37 + #endif
1.38 + };
1.39 +} // namespace serialization
1.40 +} // namespace boost
1.41 +
1.42 +// define a macro to make explicit designation of this more transparent
1.43 +#define BOOST_IS_ABSTRACT(T) \
1.44 +namespace boost { \
1.45 +namespace serialization { \
1.46 +template<> \
1.47 +struct is_abstract< T > { \
1.48 + typedef mpl::bool_<true> type; \
1.49 + BOOST_STATIC_CONSTANT(bool, value = true); \
1.50 +}; \
1.51 +} \
1.52 +} \
1.53 +/**/
1.54 +
1.55 +#endif //BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP