On 6/28/2013 6:42 PM, Michel Fortin wrote:
> Le 28-juin-2013 à 17:03, Rainer Schuetze <r.sagita...@gmx.de> a écrit :
>
>> Any parameter of type C is also lowered to shared_ptr!C.
> class C {}
>
> People still constantly forget that C used as a type represents a *reference* to an object of class C, not the object itself. If you replace type C with shared_ptr!C, you must then replace it with shared_ptr!(shared_ptr!C) and so on; there's no end to it.
>
> Also, I strongly doubt the compiler will be able to elide redundant calls to retain/release made within shared_ptr!C while still respecting normal struct semantics.
>

Using some sort of shared_ptr!T was the original idea, but I could not figure a reasonable way to make it memory safe without the compiler knowing about it. The easiest way to have the compiler know about it is to make it some sort of class type, not a struct type.

Reply via email to