struct constructors and destructors.
SrMordred via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 19 07:09:32 PDT 2017
On Wednesday, 19 July 2017 at 09:09:40 UTC, Stefan Koch wrote:
> On Wednesday, 19 July 2017 at 07:48:28 UTC, Danni Coy wrote:
>> Is there a reason that the following code
>>
>> struct Foo
>> {
>> this (string name)
>> { do_something(name); }
>>
>> ~this()
>> { undo_something(); }
>> }
>>
>> Foo foo = void;
>>
>> void open()
>> {
>> foo = Foo("test"); // <- this line
>> }
>>
>> tries to OpAssign foo to itself then calls foo's destructor?
>
> What happens is this.
>
> void open()
> {
> foo = () {
> Foo _tmp = Foo.__ctor("test");
> return _tmp;
> } ();
> }
Hm, isnt that wrong?
If I destroy resources on the dtor, wouldn't it invalidate the
resource on the copy?
Also, C++ behaves differently
More information about the Digitalmars-d
mailing list