Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*=============================================================================
0002     Copyright (c) 2009 Christopher Schmidt
0003     Copyright (c) 2021-2022 Denis Mikhailov
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 
0009 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
0010 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
0011 
0012 #include <boost/fusion/support/config.hpp>
0013 #include <boost/fusion/iterator/deref_data.hpp>
0014 #include <boost/fusion/iterator/prior.hpp>
0015 
0016 namespace boost { namespace fusion { namespace extension
0017 {
0018     template <typename>
0019     struct deref_data_impl;
0020 
0021     template <>
0022     struct deref_data_impl<reverse_view_iterator_tag>
0023     {
0024         template <typename It>
0025         struct apply
0026         {
0027             typedef typename
0028                 result_of::deref_data<
0029                     typename result_of::prior<
0030                         typename It::first_type
0031                     >::type
0032                 >::type
0033             type;
0034 
0035             BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0036             static type
0037             call(It const& it)
0038             {
0039                 return fusion::deref_data(fusion::prior(it.first));
0040             }
0041         };
0042     };
0043 }}}
0044 
0045 #endif