On 6/15/23 8:45 PM, zjh wrote:
On Friday, 16 June 2023 at 00:35:48 UTC, Steven Schveighoffer wrote:
But there is no way in D to have e.g.:

```d
B b; // runs a constructor
```



As a `C++` user, it is very terrible to simplify `RAII` without such a method. Why must `this()` be disabled? Can't there be a constructor? In a constructor, you can complete `some work`. Without it, how can you simplify `RAII`?.


D was not originally designed with RAII. That was added later (D1 structs did not have ctors or dtors).

The benefit of *not* having parameterless constructors is that default construction is always defined *and* available at compile time.

What is wrong with using a parameter constructor or factory function? What is the feature you are trying to build that you can with C++, but not with D?

I'm not saying I agree with the limitation, just want to know more.

-Steve

Reply via email to