Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*=============================================================================
0002     Copyright (c) 2001-2007 Joel de Guzman
0003     Copyright (c) 2007 Dan Marsden
0004     Copyright (c) 2018 Kohei Takahashi
0005 
0006     Distributed under the Boost Software License, Version 1.0. (See accompanying 
0007     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 ==============================================================================*/
0009 #if !defined(BOOST_FUSION_FOR_EACH_20070527_0943)
0010 #define BOOST_FUSION_FOR_EACH_20070527_0943
0011 
0012 #include <boost/fusion/support/config.hpp>
0013 #include <boost/fusion/algorithm/iteration/detail/for_each.hpp>
0014 #include <boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp>
0015 #include <boost/fusion/support/is_segmented.hpp>
0016 #include <boost/fusion/support/is_sequence.hpp>
0017 #include <boost/core/enable_if.hpp>
0018 
0019 namespace boost { namespace fusion
0020 {
0021     namespace result_of
0022     {
0023         template <typename Sequence, typename F>
0024         struct for_each
0025         {
0026             typedef void type;
0027         };
0028     }
0029 
0030     template <typename Sequence, typename F>
0031     BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0032     inline typename enable_if<traits::is_sequence<Sequence> >::type
0033     for_each(Sequence& seq, F f)
0034     {
0035         detail::for_each(seq, f, typename traits::is_segmented<Sequence>::type());
0036     }
0037 
0038     template <typename Sequence, typename F>
0039     BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0040     inline typename enable_if<traits::is_sequence<Sequence> >::type
0041     for_each(Sequence const& seq, F f)
0042     {
0043         detail::for_each(seq, f, typename traits::is_segmented<Sequence>::type());
0044     }
0045 }}
0046 
0047 #endif