Home | History | Annotate | Download | only in aux_
      1 
      2 #ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
      3 #define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
      4 
      5 // Copyright Aleksey Gurtovoy 2000-2004
      6 //
      7 // Distributed under the Boost Software License, Version 1.0.
      8 // (See accompanying file LICENSE_1_0.txt or copy at
      9 // http://www.boost.org/LICENSE_1_0.txt)
     10 //
     11 // See http://www.boost.org/libs/mpl for documentation.
     12 
     13 // $Id: nested_type_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
     14 // $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
     15 // $Revision: 49267 $
     16 
     17 #include <boost/mpl/aux_/config/gcc.hpp>
     18 #include <boost/mpl/aux_/config/workaround.hpp>
     19 
     20 #if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
     21     || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
     22     || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
     23     || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
     24 
     25 namespace boost { namespace mpl { namespace aux {
     26 template< typename T > struct nested_type_wknd
     27     : T::type
     28 {
     29 };
     30 }}}
     31 
     32 #if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
     33 #   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
     34     aux::nested_type_wknd<T> \
     35 /**/
     36 #else
     37 #   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
     38     ::boost::mpl::aux::nested_type_wknd<T> \
     39 /**/
     40 #endif
     41 
     42 #else // !BOOST_MPL_CFG_GCC et al.
     43 
     44 #   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
     45 
     46 #endif
     47 
     48 #endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
     49