Old problem with performance

Tom S h3r3tic at remove.mat.uni.torun.pl
Thu Feb 12 07:43:15 PST 2009


Rainer Deyke wrote:
> Christopher Wright wrote:
>> What mechanism for sharing state is available to by-reference objects
>> but not by-value objects?
> 
> struct C {
>   T t;
> }
> 
> C c1;
> C c2 = c1;
> 
> 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.


> 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...


> If T is a template parameter, it could be both.

That's what IsExpression and static assertions are for.


-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode



More information about the Digitalmars-d mailing list