epoc32/include/stdapis/boost/mpl/vector/aux_/empty.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
williamr@4
     2
#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
williamr@4
     3
#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
williamr@4
     4
williamr@4
     5
// Copyright Aleksey Gurtovoy 2000-2004
williamr@4
     6
//
williamr@4
     7
// Distributed under the Boost Software License, Version 1.0. 
williamr@4
     8
// (See accompanying file LICENSE_1_0.txt or copy at 
williamr@4
     9
// http://www.boost.org/LICENSE_1_0.txt)
williamr@4
    10
//
williamr@4
    11
// See http://www.boost.org/libs/mpl for documentation.
williamr@4
    12
williamr@4
    13
// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/empty.hpp,v $
williamr@4
    14
// $Date: 2004/09/02 15:41:19 $
williamr@4
    15
// $Revision: 1.5 $
williamr@4
    16
williamr@4
    17
#include <boost/mpl/empty_fwd.hpp>
williamr@4
    18
#include <boost/mpl/bool.hpp>
williamr@4
    19
#include <boost/mpl/vector/aux_/tag.hpp>
williamr@4
    20
#include <boost/mpl/aux_/config/typeof.hpp>
williamr@4
    21
#include <boost/mpl/aux_/config/ctps.hpp>
williamr@4
    22
#include <boost/type_traits/is_same.hpp>
williamr@4
    23
williamr@4
    24
namespace boost { namespace mpl {
williamr@4
    25
williamr@4
    26
#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
williamr@4
    27
williamr@4
    28
template<>
williamr@4
    29
struct empty_impl< aux::vector_tag >
williamr@4
    30
{
williamr@4
    31
    template< typename Vector > struct apply
williamr@4
    32
        : is_same<
williamr@4
    33
              typename Vector::lower_bound_
williamr@4
    34
            , typename Vector::upper_bound_
williamr@4
    35
            >
williamr@4
    36
    {
williamr@4
    37
    };
williamr@4
    38
};
williamr@4
    39
williamr@4
    40
#else
williamr@4
    41
williamr@4
    42
template<>
williamr@4
    43
struct empty_impl< aux::vector_tag<0> >
williamr@4
    44
{
williamr@4
    45
    template< typename Vector > struct apply
williamr@4
    46
        : true_
williamr@4
    47
    {
williamr@4
    48
    };
williamr@4
    49
};
williamr@4
    50
williamr@4
    51
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
williamr@4
    52
williamr@4
    53
template< long N >
williamr@4
    54
struct empty_impl< aux::vector_tag<N> >
williamr@4
    55
{
williamr@4
    56
    template< typename Vector > struct apply
williamr@4
    57
        : false_
williamr@4
    58
    {
williamr@4
    59
    };
williamr@4
    60
};
williamr@4
    61
williamr@4
    62
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
williamr@4
    63
williamr@4
    64
#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
williamr@4
    65
williamr@4
    66
}}
williamr@4
    67
williamr@4
    68
#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED