1 /*=============================================================================
2 Copyright (c) 2009 Christopher Schmidt
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 ==============================================================================*/
8 #ifndef BOOST_FUSION_ITERATOR_DEREF_DATA_HPP
9 #define BOOST_FUSION_ITERATOR_DEREF_DATA_HPP
11 #include <boost/fusion/support/config.hpp>
12 #include <boost/fusion/support/tag_of.hpp>
14 namespace boost { namespace fusion
16 struct iterator_facade_tag;
21 struct deref_data_impl;
24 struct deref_data_impl<iterator_facade_tag>
26 template <typename It>
28 : It::template deref_data<It>
35 template <typename It>
37 : extension::deref_data_impl<typename traits::tag_of<It>::type>::
42 template <typename It>
43 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
44 inline typename result_of::deref_data<It>::type
45 deref_data(It const& it)
47 return result_of::deref_data<It>::call(it);