
shunsuke wrote:
shunsuke wrote:
Eric Niebler wrote:
I think that's right so far. Now imagine a simple identity function object, that just returns its argument unmodified:
struct identity { template<typename Sig> struct result;
template<typename This, typename Arg> struct result<This(Arg)> { typedef Arg type; };
template<typename Arg> Arg const &operator()(Arg const &arg) { return arg; }
// and a non-const overload, too }; Let me clarify. This identity implementation is simply wrong (if you pass an rvalue to identity.) because of inconsistency between decltype and result_of.
Ditto that tr1_function. Am I right?
I don't think you are right, at least not for C++03. There is no decltype, so there can be no inconsistency with it. :-) Do you still think that the tr1_function wrapper I sent around is wrong, and if so, why? -- Eric Niebler Boost Consulting www.boost-consulting.com