Struct that destroys its original handle on copy-by-value
Dicebot via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jul 31 11:01:44 PDT 2015
On Friday, 31 July 2015 at 17:21:40 UTC, Ali Çehreli wrote:
> On 07/26/2015 04:29 AM, Joseph Rushton Wakeling via
> Digitalmars-d-learn wrote:
>
> > is this design idea even feasible in principle, or just a bad
> > idea from the get-go?
>
> As I understand it, it is against one of fundamental D
> principles: structs are value types where any copy can be used
> in place of any other.
>
> I expect there are examples where even Phobos violates it but
> the struct documentation still says so: "A struct is defined to
> not have an identity; that is, the implementation is free to
> make bit copies of the struct as convenient."
I believe this restriction should be banned. Considering classes
have inherent reference + heap semantics (and you can only bail
out of that with hacks) saying struct can't be anything but data
bags makes impossible to implement whole class of useful designs.
The fact that Phobos has to violate it itself to get stuff done
is quite telling.
More information about the Digitalmars-d-learn
mailing list