epoc32/include/stdapis/boost/mpl/front.hpp
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
equal deleted inserted replaced
2:2fe1408b6811 3:e1b950c65cb4
       
     1 
       
     2 #ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
       
     3 #define BOOST_MPL_LIST_AUX_FRONT_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/vector/aux_/front.hpp,v $
       
    14 // $Date: 2004/09/02 15:41:19 $
       
    15 // $Revision: 1.4 $
       
    16 
       
    17 #include <boost/mpl/front_fwd.hpp>
       
    18 #include <boost/mpl/vector/aux_/at.hpp>
       
    19 #include <boost/mpl/vector/aux_/tag.hpp>
       
    20 #include <boost/mpl/aux_/nttp_decl.hpp>
       
    21 #include <boost/mpl/aux_/config/typeof.hpp>
       
    22 #include <boost/mpl/aux_/config/ctps.hpp>
       
    23 
       
    24 namespace boost { namespace mpl {
       
    25 
       
    26 #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
       
    27 
       
    28 template<>
       
    29 struct front_impl< aux::vector_tag >
       
    30 {
       
    31     template< typename Vector > struct apply
       
    32         : v_at<Vector,0>
       
    33     {
       
    34     };
       
    35 };
       
    36 
       
    37 #else
       
    38 
       
    39 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
       
    40 
       
    41 template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
       
    42 struct front_impl< aux::vector_tag<n_> >
       
    43 {
       
    44     template< typename Vector > struct apply
       
    45     {
       
    46         typedef typename Vector::item0 type;
       
    47     };
       
    48 };
       
    49 
       
    50 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
       
    51 
       
    52 #endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
       
    53 
       
    54 }}
       
    55 
       
    56 #endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED