epoc32/include/stdapis/boost/mpl/begin_end.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
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.
     1 
     2 #ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED
     3 #define BOOST_MPL_BEGIN_END_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/begin_end.hpp,v $
    14 // $Date: 2004/09/02 15:40:41 $
    15 // $Revision: 1.4 $
    16 
    17 #include <boost/mpl/begin_end_fwd.hpp>
    18 #include <boost/mpl/aux_/begin_end_impl.hpp>
    19 #include <boost/mpl/sequence_tag.hpp>
    20 #include <boost/mpl/aux_/na_spec.hpp>
    21 #include <boost/mpl/aux_/lambda_support.hpp>
    22 
    23 namespace boost { namespace mpl {
    24 
    25 // agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more
    26 // happy this way (less ETI-related errors), and it doesn't affect 
    27 // anything else
    28 template<
    29       typename BOOST_MPL_AUX_NA_PARAM(Sequence)
    30     >
    31 struct begin
    32 {
    33     typedef typename sequence_tag<Sequence>::type tag_;
    34     typedef typename begin_impl< tag_ >
    35         ::template apply< Sequence >::type type;
    36 
    37     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
    38 };
    39 
    40 template<
    41       typename BOOST_MPL_AUX_NA_PARAM(Sequence)
    42     >
    43 struct end
    44 {
    45     typedef typename sequence_tag<Sequence>::type tag_;
    46     typedef typename end_impl< tag_ >
    47         ::template apply< Sequence >::type type;
    48 
    49     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
    50 };
    51 
    52 BOOST_MPL_AUX_NA_SPEC(1, begin)
    53 BOOST_MPL_AUX_NA_SPEC(1, end)
    54 
    55 }}
    56 
    57 #endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED