sl@0: sl@0: #ifndef BOOST_MPL_EMPTY_BASE_HPP_INCLUDED sl@0: #define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED sl@0: sl@0: // Copyright Aleksey Gurtovoy 2001-2004 sl@0: // sl@0: // Distributed under the Boost Software License, Version 1.0. sl@0: // (See accompanying file LICENSE_1_0.txt or copy at sl@0: // http://www.boost.org/LICENSE_1_0.txt) sl@0: // sl@0: // See http://www.boost.org/libs/mpl for documentation. sl@0: sl@0: // $Source: /cvsroot/boost/boost/boost/mpl/empty_base.hpp,v $ sl@0: // $Date: 2004/09/02 15:40:41 $ sl@0: // $Revision: 1.4 $ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: #include sl@0: sl@0: // should be always the last #include directive sl@0: #include sl@0: sl@0: namespace boost { namespace mpl { sl@0: sl@0: // empty base class, guaranteed to have no members; inheritance from sl@0: // 'empty_base' through the 'inherit' metafunction is a no-op - see sl@0: // "mpl/inherit.hpp> header for the details sl@0: struct empty_base {}; sl@0: sl@0: template< typename T > sl@0: struct is_empty_base sl@0: : false_ sl@0: { sl@0: #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) sl@0: using false_::value; sl@0: #endif sl@0: }; sl@0: sl@0: template<> sl@0: struct is_empty_base sl@0: : true_ sl@0: { sl@0: #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) sl@0: using true_::value; sl@0: #endif sl@0: }; sl@0: sl@0: }} sl@0: sl@0: namespace boost { sl@0: BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_empty, mpl::empty_base, true) sl@0: } sl@0: sl@0: #include sl@0: sl@0: #endif // BOOST_MPL_EMPTY_BASE_HPP_INCLUDED