epoc32/include/stdapis/boost/mpl/aux_/yes_no.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 
     2 #ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
     3 #define BOOST_MPL_AUX_YES_NO_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 // $Source: /cvsroot/boost/boost/boost/mpl/aux_/yes_no.hpp,v $
    14 // $Date: 2005/08/25 16:27:21 $
    15 // $Revision: 1.8 $
    16 
    17 #include <boost/mpl/aux_/nttp_decl.hpp>
    18 #include <boost/mpl/aux_/config/arrays.hpp>
    19 #include <boost/mpl/aux_/config/msvc.hpp>
    20 #include <boost/mpl/aux_/config/workaround.hpp>
    21 
    22 
    23 namespace boost { namespace mpl { namespace aux {
    24 
    25 typedef char (&no_tag)[1];
    26 typedef char (&yes_tag)[2];
    27 
    28 template< bool C_ > struct yes_no_tag
    29 {
    30     typedef no_tag type;
    31 };
    32 
    33 template<> struct yes_no_tag<true>
    34 {
    35     typedef yes_tag type;
    36 };
    37 
    38 
    39 template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
    40 {
    41 #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
    42     typedef char (&type)[n];
    43 #else
    44     char buf[n];
    45     typedef weighted_tag type;
    46 #endif
    47 };
    48 
    49 #if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
    50 template<> struct weighted_tag<0>
    51 {
    52     typedef char (&type)[1];
    53 };
    54 #endif
    55 
    56 }}}
    57 
    58 #endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED