struct and default constructor
dcrepid via Digitalmars-d
digitalmars-d at puremagic.com
Sat Oct 11 01:47:59 PDT 2014
On Friday, 10 October 2014 at 22:34:45 UTC, ketmar via
Digitalmars-d wrote:
> On Fri, 10 Oct 2014 21:45:32 +0000
>> Shouldn't properties not mutate the data?
> it depends. ;-) i think that doing such "lazy initialization" in
> property is acceptable. maybe not the best style, but
> acceptable. yet i
> may be wrong, of course.
Ah, I see. Lazy initialization is a nice approach to some things.
But I'm not entirely sure it belongs in the structure or object
itself.. however, if I were too I might put it in a 'length' or
'rezise' member function.. but that'd be better for a resizable
object..
>> better methods to doing it safely, for sure. But to do the
>> same with only a single pointer?
> why do you insisting on having single pointer? sure you can use
> all
> sort of tricks to pack alot of data in single pointer, but i
> can't see
> any practical sense in it. today when smartphones have
> gigabytes of
> RAM, i'll trade some more pointers for ease of using and safety.
Actually, I think memory efficiency and speed are pretty key
today, especially with embedded systems, server farms, and mobile
devices. And it doesn't just have to do with available memory,
but cache lines, register usage, etc. But that's another debate
for another time.
As far as the safety tradeoff though.. I prevent copying and
default construction, so at least two problems should
theoretically be solved. The possibility of using ranges or
pointers outside of the function or scope is the only thing that
would need to be controlled for. And there I suppose the GC or
reference counting mechanisms would be the only other options.
But hopefully if I document it right, and suggest the correct
alternatives to use, I can prevent careless programmers from
making those mistakes. (I think std.container.array.Array is a
nice fallback)
> ah, yes, it's "Voldemort type". ;-)
Ah, I had wondered why/where/what context I heard that under!
Makes more sense now. =)
Also, thanks for the other pointers (I didnt quote everything
here)
More information about the Digitalmars-d
mailing list