]> git.donarmstrong.com Git - rsem.git/blob - boost/fusion/adapted/struct/detail/deref_impl.hpp
Updated boost to v1.55.0
[rsem.git] / boost / fusion / adapted / struct / detail / deref_impl.hpp
1 /*=============================================================================
2     Copyright (c) 2009-2010 Christopher Schmidt
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
8 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
9 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
10
11 namespace boost { namespace fusion { namespace extension
12 {
13     template <typename>
14     struct deref_impl;
15
16     template <>
17     struct deref_impl<struct_iterator_tag>
18     {
19         template <typename It>
20         struct apply
21         {
22            typedef typename
23                access::struct_member<
24                    typename remove_const<typename It::seq_type>::type
25                  , It::index::value
26                >::template apply<typename It::seq_type>
27            impl;
28
29            typedef typename impl::type type;
30
31            static
32            type
33            call(It const& it)
34            {
35                return impl::call(*it.seq);
36            }
37         };
38     };
39 }}}
40
41 #endif