Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 09:39:57

0001 /*=============================================================================
0002     Copyright (c) 2007 Tobias Schwinger
0003 
0004     Use modification and distribution are subject to the Boost Software
0005     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0006     http://www.boost.org/LICENSE_1_0.txt).
0007 ==============================================================================*/
0008 
0009 #if !defined(BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED)
0010 #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED
0011 
0012 #include <boost/fusion/support/config.hpp>
0013 #include <boost/fusion/support/deduce.hpp>
0014 #include <boost/fusion/container/vector/convert.hpp>
0015 #include <boost/fusion/view/transform_view.hpp>
0016 #include <boost/config.hpp>
0017 
0018 
0019 namespace boost { namespace fusion { namespace traits
0020 {
0021     template <class Sequence> struct deduce_sequence;
0022 
0023     namespace detail
0024     {
0025         struct deducer
0026         {
0027             template <typename Sig>
0028             struct result;
0029 
0030             template <class Self, typename T>
0031             struct result< Self(T) >
0032                 : fusion::traits::deduce<T>
0033             { };
0034 
0035             // never called, but needed for decltype-based result_of (C++0x)
0036 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
0037             template <typename T>
0038             BOOST_FUSION_GPU_ENABLED
0039             typename result< deducer(T) >::type
0040             operator()(T&&) const;
0041 #endif
0042         };
0043     }
0044 
0045     template <class Sequence>
0046     struct deduce_sequence
0047         : result_of::as_vector<
0048             fusion::transform_view<Sequence, detail::deducer> >
0049     { };
0050 
0051 }}}
0052 
0053 #endif
0054