
Matt Calabrese wrote:
On 7/10/06, Peter Dimov <pdimov@mmltd.net> wrote:
Instantiating the definition of result_of<Type> causes the instantiation of the declarations of its members, so this would imply that when its nested type member is ill-formed, the definition of result_of<> cannot be instantiated.
Yes, that's not what I'm asking. What I'm asking is should I have a nested type at all in the case of ambiguity? This would make accessing result_of< Type >::type ill-formed, however, it keeps result_of< Type > instantiable.
In principle, a portable program wouldn't be able to depend on the "instantiability" of result_of<Type> (if we're talking about the TR1 result_of) since TR1 doesn't guarantee it. So you may as well pick whatever is more convenient for you, I guess.