Chris@16: /*============================================================================= Chris@16: Copyright (c) 2007 Tobias Schwinger Chris@16: Chris@16: Use modification and distribution are subject to the Boost Software Chris@16: License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt). Chris@16: ==============================================================================*/ Chris@16: Chris@16: #if !defined(BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED) Chris@16: #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED Chris@16: Chris@101: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: Chris@16: namespace boost { namespace fusion { namespace traits Chris@16: { Chris@16: template struct deduce_sequence; Chris@16: Chris@16: namespace detail Chris@16: { Chris@16: struct deducer Chris@16: { Chris@16: template Chris@16: struct result; Chris@16: Chris@16: template Chris@16: struct result< Self(T) > Chris@16: : fusion::traits::deduce Chris@16: { }; Chris@16: Chris@16: // never called, but needed for decltype-based result_of (C++0x) Chris@16: #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES Chris@16: template Chris@101: BOOST_FUSION_GPU_ENABLED Chris@16: typename result< deducer(T) >::type Chris@16: operator()(T&&) const; Chris@16: #endif Chris@16: }; Chris@16: } Chris@16: Chris@16: template Chris@16: struct deduce_sequence Chris@16: : result_of::as_vector< Chris@16: fusion::transform_view > Chris@16: { }; Chris@16: Chris@16: }}} Chris@16: Chris@16: #endif Chris@16: