What are the worst parts of D?
eles via Digitalmars-d
digitalmars-d at puremagic.com
Sun Oct 5 23:28:01 PDT 2014
On Monday, 6 October 2014 at 06:23:42 UTC, eles wrote:
> On Monday, 6 October 2014 at 03:48:49 UTC, Andrei Alexandrescu
> wrote:
>> On 10/5/14, 3:08 PM, eles wrote:
>>> On Sunday, 5 October 2014 at 14:55:38 UTC, Dicebot wrote:
>
>> The main distinction between structs and classes in D is the
>> former are monomorphic value types and the later are
>> polymorphic reference types. -- Andrei
>
> Why hack them with scoped? The need exists, since you provide a
> hack for it.
>
> Reference classes in C++ are polymorphic & reference, but their
> destructor/disposer gets called.
>
> There is a delete that triggers that or a smart pointer. I
> don't care if the delete or the destructor really frees the
> memory, but I would like it to get called, to release other
> resources that the object might have locked and to mark the
> object as "invalid". Later access to it shall triger an
> exception: "invalidObject".
>
> Call it dispose if you like, because delete is too much like
> freeing memory.
>
> Is there an intermediate type between structs and classes?
Form that page again:
"I have found (dislcaimer: this is my experience, your mileage
will vary) that because 90% of the time you don't need to worry
about releasing a resource in C#, it is easy to forget to do a
"using" the remaining 10%. In C++ you always need to worry about
it, which makes it real easy to remember that when obtaining a
resource make sure you have taken care of its release as well.
(In essence, make sure it is stored in something whose destructor
will free it). I have found this pattern a lot harder to follow
in C# than in C++.
Having said all that, there is a lot to like about .NET and C# as
well. I just personally find that the whole "garbage collector
saves you" aspect that is pitched in every intro to the language
I have encountered more of a trap than a salvation."
More information about the Digitalmars-d
mailing list