epoc32/include/stdapis/boost/mpl/aux_/empty_impl.hpp
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
     1.1 --- a/epoc32/include/stdapis/boost/mpl/aux_/empty_impl.hpp	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ b/epoc32/include/stdapis/boost/mpl/aux_/empty_impl.hpp	Wed Mar 31 12:33:34 2010 +0100
     1.3 @@ -1,8 +1,8 @@
     1.4  
     1.5 -#ifndef BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
     1.6 -#define BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
     1.7 +#ifndef BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED
     1.8 +#define BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED
     1.9  
    1.10 -// Copyright Aleksey Gurtovoy 2003-2004
    1.11 +// Copyright Aleksey Gurtovoy 2000-2004
    1.12  //
    1.13  // Distributed under the Boost Software License, Version 1.0. 
    1.14  // (See accompanying file LICENSE_1_0.txt or copy at 
    1.15 @@ -10,25 +10,34 @@
    1.16  //
    1.17  // See http://www.boost.org/libs/mpl for documentation.
    1.18  
    1.19 -// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/empty_impl.hpp,v $
    1.20 -// $Date: 2004/09/02 15:41:02 $
    1.21 -// $Revision: 1.2 $
    1.22 +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/empty_impl.hpp,v $
    1.23 +// $Date: 2004/09/02 15:40:43 $
    1.24 +// $Revision: 1.4 $
    1.25  
    1.26  #include <boost/mpl/empty_fwd.hpp>
    1.27 -#include <boost/mpl/not.hpp>
    1.28 -#include <boost/mpl/set/aux_/tag.hpp>
    1.29 +#include <boost/mpl/begin_end.hpp>
    1.30 +#include <boost/mpl/aux_/traits_lambda_spec.hpp>
    1.31 +#include <boost/type_traits/is_same.hpp>
    1.32  
    1.33  namespace boost { namespace mpl {
    1.34  
    1.35 -template<>
    1.36 -struct empty_impl< aux::set_tag >
    1.37 +// default implementation; conrete sequences might override it by 
    1.38 +// specializing either the 'empty_impl' or the primary 'empty' template
    1.39 +
    1.40 +template< typename Tag >
    1.41 +struct empty_impl
    1.42  {
    1.43 -    template< typename Set > struct apply
    1.44 -        : not_< typename Set::size >
    1.45 +    template< typename Sequence > struct apply
    1.46 +        : is_same<
    1.47 +              typename begin<Sequence>::type
    1.48 +            , typename end<Sequence>::type
    1.49 +            >
    1.50      {
    1.51      };
    1.52  };
    1.53  
    1.54 +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,empty_impl)
    1.55 +
    1.56  }}
    1.57  
    1.58 -#endif // BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED
    1.59 +#endif // BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED