From 46134407cfd5df505090d3f2c688576ae7b025d0 Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Fri, 22 Sep 2006 00:41:24 +0000 Subject: [PATCH] fixed for msvc [SVN r35270] --- .../fusion/sequence/utility/unpack_args.hpp | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/include/boost/fusion/sequence/utility/unpack_args.hpp b/include/boost/fusion/sequence/utility/unpack_args.hpp index df3cb736..a379a693 100644 --- a/include/boost/fusion/sequence/utility/unpack_args.hpp +++ b/include/boost/fusion/sequence/utility/unpack_args.hpp @@ -33,23 +33,30 @@ namespace boost { namespace fusion { - namespace detail { + template + struct unpack_args_impl_helper + { + typedef typename remove_cv::type f_nocv; + + typedef + typename mpl::eval_if< + is_pointer, + mpl::identity, + mpl::eval_if< + is_function, + add_pointer, + mpl::identity + > + >::type + type; + }; template < class F, class Sequence, - class F_ = - typename boost::mpl::eval_if< - boost::is_pointer, - boost::remove_cv, - boost::mpl::eval_if< - boost::is_function::type>, - boost::add_pointer::type>, - boost::mpl::identity - > - >::type, + class F_ = typename unpack_args_impl_helper::type, class Size = mpl::int_::value> > struct unpack_args_impl;