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