Tom S wrote: > Rainer Deyke wrote: >> If T was a reference type, 'c1' and 'c2' now share state, and it's up to >> the programmer to write code to prevent this. > > No, they don't. Each instance of C has its own copy of the 't' reference.
That's like saying object slicing is an intentional feature. Given the intended semantics of 'C', it's a bug. >> Moreover, the D language >> doesn't even give a hint as to whether T or a reference type or a value >> type. > > Like you can't write "typedef X* T;" in C... The C programmer who does that should be shot. In C++ this idiom has some valid uses (iterators, template metaprogramming), but there remains an important distinction: the syntax for dealing with variables of type 'X*' is different than the syntax for dealing with variables of type 'X'. -- Rainer Deyke - [email protected]
