On 07/11/12 11:49, David Nadlinger wrote: > On Wednesday, 11 July 2012 at 08:56:39 UTC, Artur Skawina wrote: >> On 07/11/12 09:00, Tobias Pankrath wrote: >>> Bar b = new Bar; >>> auto b2 = &b; // type of b2 is Bar* >>> >>> So does it meen, that a pointer of type Bar* does not point to the real >>> object? >> >> Yeah, unfortunately. >> Can anybody think of a reason to keep the current (broken) behavior? > > Why would it be broken? Bar intrinsically is a reference type, so Bar* is a > pointer to a reference.
Because it doesn't let you have a real pointer to a class. The obvious alternative would be: auto r = new Bar(); // reference Bar* p = r; // pointer to Bar; ref implicitly converts to pointer. auto pr = &r; // typeof(pr)==Bar** ; can't do better w/o ref types. So, does the current scheme have any advantages? (currently, the second example is illegal and the last '&r' expression results in 'Bar *') artur