| /*============================================================================= |
| Copyright (c) 2007 Tobias Schwinger |
| |
| Use modification and distribution are subject to the Boost Software |
| License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
| http://www.boost.org/LICENSE_1_0.txt). |
| ==============================================================================*/ |
| |
| #if !defined(BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED) |
| #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED |
| |
| #include <boost/fusion/support/deduce.hpp> |
| #include <boost/fusion/container/vector/convert.hpp> |
| #include <boost/fusion/view/transform_view.hpp> |
| |
| |
| namespace boost { namespace fusion { namespace traits |
| { |
| template <class Sequence> struct deduce_sequence; |
| |
| namespace detail |
| { |
| struct deducer |
| { |
| template <typename Sig> |
| struct result; |
| |
| template <class Self, typename T> |
| struct result< Self(T) > |
| : fusion::traits::deduce<T> |
| { }; |
| }; |
| } |
| |
| template <class Sequence> |
| struct deduce_sequence |
| : result_of::as_vector< |
| fusion::transform_view<Sequence, detail::deducer> > |
| { }; |
| |
| }}} |
| |
| #endif |
| |