completes boost::result_of-based result type computation

[SVN r38194]
This commit is contained in:
Tobias Schwinger
2007-07-12 09:08:46 +00:00
parent 046d853d63
commit 8eda5d32ca
16 changed files with 305 additions and 156 deletions

View File

@ -35,43 +35,42 @@ namespace boost { namespace fusion
{ }
template <class Seq>
inline typename result_of::invoke_procedure<Function,Seq const>::type
operator()(Seq const & s) const
inline void operator()(Seq const & s) const
{
return fusion::invoke_procedure<
func_const_fwd_t >(this->fnc_transformed,s);
fusion::invoke_procedure<
func_const_fwd_t >(this->fnc_transformed,s);
}
template <class Seq>
inline typename result_of::invoke_procedure<Function,Seq const>::type
operator()(Seq const & s)
inline void operator()(Seq const & s)
{
return fusion::invoke_procedure<
func_fwd_t >(this->fnc_transformed,s);
fusion::invoke_procedure<
func_fwd_t >(this->fnc_transformed,s);
}
template <class Seq>
inline typename result_of::invoke_procedure<Function,Seq>::type
operator()(Seq & s) const
inline void operator()(Seq & s) const
{
return fusion::invoke_procedure<
func_const_fwd_t >(this->fnc_transformed,s);
fusion::invoke_procedure<
func_const_fwd_t >(this->fnc_transformed,s);
}
template <class Seq>
inline typename result_of::invoke_procedure<Function,Seq>::type
operator()(Seq & s)
inline void operator()(Seq & s)
{
return fusion::invoke_procedure<
func_fwd_t >(this->fnc_transformed,s);
return fusion::invoke_procedure<
func_fwd_t >(this->fnc_transformed,s);
}
template <class Seq>
template <typename Sig>
struct result
: result_of::invoke_procedure<Function,Seq>
{ };
typedef void result_type;
template <class Self, class Seq>
struct result< Self(Seq) >
{
typedef void type;
};
};
}}