Boost logo

Boost :

From: David Abrahams (abrahams_at_[hidden])
Date: 2001-04-06 07:42:55


----- Original Message -----
From: "Peter Dimov" <pdimov_at_[hidden]>

> The caveat about temporary smart pointer objects still applies. My rule is
> "never create an unnamed temporary smart pointer." The non-const reference
> idiom tries to enforce this rule... although I have another reason for
> preferring pass by non-const reference:
>
> void f(T arg);
>
> T t;
>
> f(t);
>
> // now t is unchanged, right?

Wrong, of course. Usually, the declaration of f isn't visible near the call,
so you can't assume much about what's changed. But this case could be seen
as an argument for using the unnamed temporary... then there's no object
hanging around with a confusing value.

-Dave


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