Struct that destroys its original handle on copy-by-value
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jul 31 11:13:04 PDT 2015
On 07/31/2015 11:01 AM, Dicebot wrote:> 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.
To make sure, I didn't mean that I know of structs in Phobos that behave
that way. Although, it would be interesting to identify them. :)
Ali
More information about the Digitalmars-d-learn
mailing list