Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-10-31 08:34:21

Eric Niebler wrote:

> Another work-around is to add the following:
> namespace boost
> {
> template<typename T>
> struct result_of;
> template<typename T, typename A>
> struct result_of<Foo<T>(A)>
> : Foo<T>::template result<void(A)>
> {};
> }
> #endif

It's also possible to provide the actual return type in the result_of
specialization (which is what I use when I need to talk to result_of). No
workarounds are needed in this case.

    template<class T, class A> struct result_of<Foo<T>(A)>
        typedef ... type;

The problem is that to stay cv-correct you need four specializations. Two if
you ignore volatile function objects.

    template<class T, class A> struct result_of<Foo<T> const ( A )>
        typedef ... type;

Boost list run by bdawes at, gregod at, cpdaniel at, john at