fixes result computation problem

[SVN r38208]
This commit is contained in:
Tobias Schwinger 2007-07-13 18:47:02 +00:00
parent 8525c2b0b5
commit f05493abf0
3 changed files with 12 additions and 18 deletions

View File

@ -63,17 +63,18 @@ namespace boost { namespace fusion
}
template <typename Sig>
struct result
{ };
struct result;
template <class Self, class Seq>
struct result< Self const (Seq) >
: result_of::invoke<func_const_fwd_t,Seq>
: result_of::invoke<func_const_fwd_t,
typename boost::remove_reference<Seq>::type >
{ };
template <class Self, class Seq>
struct result< Self(Seq) >
: result_of::invoke<func_fwd_t,Seq>
: result_of::invoke<func_fwd_t,
typename boost::remove_reference<Seq>::type >
{ };
};

View File

@ -68,18 +68,19 @@ namespace boost { namespace fusion
func_fwd_t >(this->fnc_transformed,s);
}
template<typename T>
struct result
{ };
template <typename Sig>
struct result;
template <class Self, class Seq>
struct result< Self const (Seq) >
: result_of::invoke_function_object<func_const_fwd_t, Seq>
: result_of::invoke_function_object<func_const_fwd_t,
typename boost::remove_reference<Seq>::type >
{ };
template <class Self, class Seq>
struct result< Self(Seq) >
: result_of::invoke_function_object<func_fwd_t, Seq>
: result_of::invoke_function_object<func_fwd_t,
typename boost::remove_reference<Seq>::type >
{ };
};

View File

@ -62,15 +62,7 @@ namespace boost { namespace fusion
func_fwd_t >(this->fnc_transformed,s);
}
template <typename Sig>
struct result
{ };
template <class Self, class Seq>
struct result< Self(Seq) >
{
typedef void type;
};
typedef void result_type;
};
}}