diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/stdapis/boost/mpl/aux_/at_impl.hpp --- a/epoc32/include/stdapis/boost/mpl/aux_/at_impl.hpp Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/stdapis/boost/mpl/aux_/at_impl.hpp Wed Mar 31 12:33:34 2010 +0100 @@ -1,8 +1,8 @@ -#ifndef BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED +#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED -// Copyright Aleksey Gurtovoy 2003-2004 +// Copyright Aleksey Gurtovoy 2000-2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -10,31 +10,36 @@ // // See http://www.boost.org/libs/mpl for documentation. -// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/at_impl.hpp,v $ -// $Date: 2004/09/02 15:41:02 $ -// $Revision: 1.2 $ +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/at_impl.hpp,v $ +// $Date: 2004/09/02 15:40:43 $ +// $Revision: 1.5 $ -#include -#include -#include -#include -#include +#include +#include +#include +#include namespace boost { namespace mpl { -template<> -struct at_impl< aux::set_tag > +// default implementation; conrete sequences might override it by +// specializing either the 'at_impl' or the primary 'at' template + +template< typename Tag > +struct at_impl { - template< typename Set, typename T > struct apply + template< typename Sequence, typename N > struct apply { - typedef typename if_< - has_key_impl::apply - , T - , void_ - >::type type; + typedef typename advance< + typename begin::type + , N + >::type iter_; + + typedef typename deref::type type; }; }; +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl) + }} -#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED +#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED