File indexing completed on 2025-01-30 09:39:57
0001
0002
0003
0004
0005
0006
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
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