merging tobias changes

[SVN r40397]
This commit is contained in:
Joel de Guzman
2007-10-24 04:58:50 +00:00
parent 3307c806c8
commit 2b9389ef5a

View File

@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2007 Tobias Schwinger
Use modification and distribution are subject to the Boost Software
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).
==============================================================================*/
@ -10,9 +10,9 @@
#define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED
#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/container/vector/convert.hpp>
#include <boost/fusion/mpl.hpp>
#include <boost/mpl/transform.hpp>
#include <boost/fusion/sequence/conversion/as_vector.hpp>
#include <boost/fusion/sequence/view/transform_view.hpp>
namespace boost { namespace fusion { namespace traits
{
@ -22,19 +22,20 @@ namespace boost { namespace fusion { namespace traits
{
struct deducer
{
template <typename T>
struct apply
template <typename Sig>
struct result;
template <class Self, typename T>
struct result< Self(T) >
: fusion::traits::deduce<T>
{ };
};
}
// We cannot use fusion::transform_view here as result_of loses cv qualifiers
// on built in types
template <class Sequence>
struct deduce_sequence
: result_of::as_vector<
typename mpl::transform<Sequence, detail::deducer>::type>
fusion::transform_view<Sequence, detail::deducer> >
{ };
}}}