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_ADAPT_DEREF_TRAITS_05062005_0900)
8 #define FUSION_ADAPT_DEREF_TRAITS_05062005_0900
9 
10 #include <boost/fusion/support/config.hpp>
11 #include <boost/fusion/iterator/deref.hpp>
12 
13 namespace boost { namespace fusion { namespace detail
14 {
15     struct adapt_deref_traits
16     {
17         template <typename Iterator>
18         struct apply
19         {
20             typedef typename
21                 result_of::deref<typename Iterator::first_type>::type
22             type;
23 
24             BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
25             static type
callboost::fusion::detail::adapt_deref_traits::apply26             call(Iterator const& i)
27             {
28                 return *i.first;
29             }
30         };
31     };
32 }}}
33 
34 #endif
35 
36 
37