Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:31:08

0001 /*=============================================================================
0002     Copyright (c) 2009-2010 Christopher Schmidt
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 ==============================================================================*/
0007 
0008 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
0009 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
0010 
0011 namespace boost { namespace fusion { namespace extension
0012 {
0013     template <typename>
0014     struct deref_impl;
0015 
0016     template <>
0017     struct deref_impl<struct_iterator_tag>
0018     {
0019         template <typename It>
0020         struct apply
0021         {
0022            typedef typename
0023                access::struct_member<
0024                    typename remove_const<typename It::seq_type>::type
0025                  , It::index::value
0026                >::template apply<typename It::seq_type>
0027            impl;
0028 
0029            typedef typename impl::type type;
0030 
0031            BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0032            static type
0033            call(It const& it)
0034            {
0035                return impl::call(*it.seq);
0036            }
0037         };
0038     };
0039 }}}
0040 
0041 #endif