result_of and polymorphic function obj compatibility

[SVN r37962]
This commit is contained in:
Dan Marsden
2007-06-11 07:01:05 +00:00
parent 414b87dbdb
commit 0fcbc5b467
42 changed files with 477 additions and 410 deletions

View File

@ -11,6 +11,7 @@
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/iterator/distance.hpp>
#include <boost/utility/result_of.hpp>
namespace boost { namespace fusion {
namespace result_of
@ -25,14 +26,13 @@ namespace detail
{
template <typename Value, typename State>
struct apply
{
typedef typename F::template result<Value, State>::type type;
};
: boost::result_of<F(Value,State)>
{};
};
template <typename Iterator, typename State, typename F>
struct fold_apply
: mpl::apply<apply_fold_result<F>, typename result_of::value_of<Iterator>::type, State>
: boost::result_of<F(typename result_of::value_of<Iterator>::type, State)>
{};
template <typename First, typename Last, typename State, typename F>