1.1 --- a/epoc32/include/stdapis/boost/mpl/begin_end.hpp Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/stdapis/boost/mpl/begin_end.hpp Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,6 +1,6 @@
1.4
1.5 -#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
1.6 -#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
1.7 +#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED
1.8 +#define BOOST_MPL_BEGIN_END_HPP_INCLUDED
1.9
1.10 // Copyright Aleksey Gurtovoy 2000-2004
1.11 //
1.12 @@ -10,40 +10,48 @@
1.13 //
1.14 // See http://www.boost.org/libs/mpl for documentation.
1.15
1.16 -// $Source: /cvsroot/boost/boost/boost/mpl/vector/aux_/begin_end.hpp,v $
1.17 -// $Date: 2004/09/02 15:41:19 $
1.18 +// $Source: /cvsroot/boost/boost/boost/mpl/begin_end.hpp,v $
1.19 +// $Date: 2004/09/02 15:40:41 $
1.20 // $Revision: 1.4 $
1.21
1.22 -#include <boost/mpl/aux_/config/typeof.hpp>
1.23 -
1.24 -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
1.25 -
1.26 -# include <boost/mpl/begin_end_fwd.hpp>
1.27 -# include <boost/mpl/vector/aux_/iterator.hpp>
1.28 -# include <boost/mpl/vector/aux_/tag.hpp>
1.29 +#include <boost/mpl/begin_end_fwd.hpp>
1.30 +#include <boost/mpl/aux_/begin_end_impl.hpp>
1.31 +#include <boost/mpl/sequence_tag.hpp>
1.32 +#include <boost/mpl/aux_/na_spec.hpp>
1.33 +#include <boost/mpl/aux_/lambda_support.hpp>
1.34
1.35 namespace boost { namespace mpl {
1.36
1.37 -template<>
1.38 -struct begin_impl< aux::vector_tag >
1.39 +// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more
1.40 +// happy this way (less ETI-related errors), and it doesn't affect
1.41 +// anything else
1.42 +template<
1.43 + typename BOOST_MPL_AUX_NA_PARAM(Sequence)
1.44 + >
1.45 +struct begin
1.46 {
1.47 - template< typename Vector > struct apply
1.48 - {
1.49 - typedef v_iter<Vector,0> type;
1.50 - };
1.51 + typedef typename sequence_tag<Sequence>::type tag_;
1.52 + typedef typename begin_impl< tag_ >
1.53 + ::template apply< Sequence >::type type;
1.54 +
1.55 + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
1.56 };
1.57
1.58 -template<>
1.59 -struct end_impl< aux::vector_tag >
1.60 +template<
1.61 + typename BOOST_MPL_AUX_NA_PARAM(Sequence)
1.62 + >
1.63 +struct end
1.64 {
1.65 - template< typename Vector > struct apply
1.66 - {
1.67 - typedef v_iter<Vector,Vector::size::value> type;
1.68 - };
1.69 + typedef typename sequence_tag<Sequence>::type tag_;
1.70 + typedef typename end_impl< tag_ >
1.71 + ::template apply< Sequence >::type type;
1.72 +
1.73 + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
1.74 };
1.75
1.76 +BOOST_MPL_AUX_NA_SPEC(1, begin)
1.77 +BOOST_MPL_AUX_NA_SPEC(1, end)
1.78 +
1.79 }}
1.80
1.81 -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
1.82 -
1.83 -#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
1.84 +#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED