Try this
struct make_b {
template<typename Sig> struct result;
template <typename DS>
struct result
{
typedef typename DS::B type;
};
template <typename DS>
struct result
{
typedef typename DS::B type;
};
template <typename T>
typename T::B
operator()(T const& t) const { return t.make_b(); }
};
or this
struct make_b {
template<typename Sig> struct result;
template
struct result
{
typedef typename DS::B type;
};
template
struct result
{
typedef typename DS::B type;
};
template <typename T>
typename T::B
operator()(T const& t) const { return t.make_b(); }
};
The latter code would be more robust, because the code allows both of
boost::result_of and boost::result_of.
Regards,
Michel