]> git.donarmstrong.com Git - rsem.git/blob - boost/fusion/container/vector/detail/prior_impl.hpp
Updated boost to v1.55.0
[rsem.git] / boost / fusion / container / vector / detail / prior_impl.hpp
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3
4     Distributed under the Boost Software License, Version 1.0. (See accompanying 
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(FUSION_PRIOR_IMPL_05042005_1145)
8 #define FUSION_PRIOR_IMPL_05042005_1145
9
10 #include <boost/fusion/container/vector/vector_iterator.hpp>
11
12 namespace boost { namespace fusion
13 {
14     struct vector_iterator_tag;
15     template <typename Vector, int N>
16     struct vector_iterator;
17
18     namespace extension
19     {
20         template <typename Tag>
21         struct prior_impl;
22
23         template <>
24         struct prior_impl<vector_iterator_tag>
25         {
26             template <typename Iterator>
27             struct apply 
28             {
29                 typedef typename Iterator::vector vector;
30                 typedef typename Iterator::index index;
31                 typedef vector_iterator<vector, index::value-1> type;
32
33                 static type
34                 call(Iterator const& i)
35                 {
36                     return type(i.vec);
37                 }
38             };
39         };
40     }
41 }}
42
43 #endif