RFC: naming for FrontTransversal and Transversal ranges
Rainer Deyke
rainerd at eldwood.com
Thu Apr 30 20:18:13 PDT 2009
Robert Jacques wrote:
> On Thu, 30 Apr 2009 17:23:19 -0400, Rainer Deyke <rainerd at eldwood.com>
> wrote:
>> It's possible to write a reference wrapper around a value type. It's
>> also possible to write a value wrapper around a reference type.
>> However, the former is both easier and more efficient than the latter.
>
> Yes and no. Yes, the deep copy mixin is more complex to write the first
> time, but after that it's easy to use. And second, it's just as
> efficient as the later, since the deep copy mixin generates the same
> code as a value type.
A simple deep-copy struct wrapper around a class type is horribly
inefficient compared to a direct struct type:
- It uses an extra heap allocation per instance.
- It uses an extra level of indirection.
- It uses virtual function calls.
- It allocates an extra reference to a virtual function table per
instance.
I suppose a very clever wrapper metaprogram or a really clever
optimizing compiler might eliminate some of these inefficiencies.
--
Rainer Deyke - rainerd at eldwood.com
More information about the Digitalmars-d
mailing list