williamr@4: #ifndef BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP williamr@4: #define BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP williamr@2: williamr@4: // MS compatible compilers support #pragma once williamr@2: #if defined(_MSC_VER) && (_MSC_VER >= 1020) williamr@2: # pragma once williamr@2: #endif williamr@2: williamr@2: /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 williamr@2: // is_abstract_class.hpp: williamr@4: williamr@4: // (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey williamr@4: // Use, modification and distribution is subject to the Boost Software williamr@4: // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at williamr@4: // http://www.boost.org/LICENSE_1_0.txt) williamr@4: williamr@2: // See http://www.boost.org for updates, documentation, and revision history. williamr@2: williamr@4: #include williamr@4: #include williamr@4: #include williamr@2: williamr@2: namespace boost { williamr@4: namespace serialization { williamr@4: template williamr@4: struct is_abstract { williamr@4: // default to false if not supported williamr@4: #ifdef BOOST_NO_IS_ABSTRACT williamr@4: typedef BOOST_DEDUCED_TYPENAME mpl::bool_ type; williamr@4: BOOST_STATIC_CONSTANT(bool, value = false); williamr@4: #else williamr@4: typedef BOOST_DEDUCED_TYPENAME boost::is_abstract::type type; williamr@4: BOOST_STATIC_CONSTANT(bool, value = type::value); williamr@4: #endif williamr@4: }; williamr@4: } // namespace serialization williamr@2: } // namespace boost williamr@2: williamr@4: // define a macro to make explicit designation of this more transparent williamr@4: #define BOOST_IS_ABSTRACT(T) \ williamr@4: namespace boost { \ williamr@4: namespace serialization { \ williamr@4: template<> \ williamr@4: struct is_abstract< T > { \ williamr@4: typedef mpl::bool_ type; \ williamr@4: BOOST_STATIC_CONSTANT(bool, value = true); \ williamr@4: }; \ williamr@4: } \ williamr@4: } \ williamr@4: /**/ williamr@2: williamr@4: #endif //BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP