Boost logo

Boost :

From: shunsuke (pstade.mb_at_[hidden])
Date: 2008-04-06 18:52:51


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.
Am I missing anything?

Regards,

-- 
Shunsuke Sogame

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk