~ubuntu-branches/ubuntu/saucy/merkaartor/saucy

« back to all changes in this revision

Viewing changes to include/builtin-boost/boost/mpl/reverse_fold.hpp

Tags: upstream-0.15.3+svn20934
ImportĀ upstreamĀ versionĀ 0.15.3+svn20934

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
 
3
#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
 
4
 
 
5
// Copyright Aleksey Gurtovoy 2001-2004
 
6
// Copyright David Abrahams 2001-2002
 
7
//
 
8
// Distributed under the Boost Software License, Version 1.0. 
 
9
// (See accompanying file LICENSE_1_0.txt or copy at 
 
10
// http://www.boost.org/LICENSE_1_0.txt)
 
11
//
 
12
// See http://www.boost.org/libs/mpl for documentation.
 
13
 
 
14
// $Id: reverse_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
 
15
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
 
16
// $Revision: 49267 $
 
17
 
 
18
#include <boost/mpl/begin_end.hpp>
 
19
#include <boost/mpl/O1_size.hpp>
 
20
#include <boost/mpl/arg.hpp>
 
21
#include <boost/mpl/aux_/reverse_fold_impl.hpp>
 
22
#include <boost/mpl/aux_/na_spec.hpp>
 
23
 
 
24
namespace boost { namespace mpl {
 
25
 
 
26
template<
 
27
      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
 
28
    , typename BOOST_MPL_AUX_NA_PARAM(State)
 
29
    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
 
30
    , typename ForwardOp = arg<1>
 
31
    >
 
32
struct reverse_fold
 
33
{
 
34
    typedef typename aux::reverse_fold_impl<
 
35
          ::boost::mpl::O1_size<Sequence>::value
 
36
        , typename begin<Sequence>::type
 
37
        , typename end<Sequence>::type
 
38
        , State
 
39
        , BackwardOp
 
40
        , ForwardOp
 
41
        >::state type;
 
42
 
 
43
    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
 
44
};
 
45
 
 
46
BOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
 
47
 
 
48
}}
 
49
 
 
50
#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED