On Thursday, 19 August 2021 at 18:11:20 UTC, Paul Backus wrote:
On Thursday, 19 August 2021 at 18:04:58 UTC, Tejas wrote:
On Thursday, 19 August 2021 at 17:43:59 UTC, Paul Backus wrote:
On Thursday, 19 August 2021 at 17:38:14 UTC, Tejas wrote:
As the topic says:
Is there an equivalent to C++'s `explicit` keyword in D?
No, because all constructors are explicit in D.
Oh... then I guess I'll have to manually insert the explicit
casts where C++ is doing implicit casts when calling
constructors(God help me D: )
Worth noting that in the specific case of variable
initialization, you do not have to write out the constructor
call directly:
```d
struct S
{
this(int n) {}
}
void example()
{
auto a = S(123); // this calls the constructor
S b = 456; // so does this
}
```
Yeah I know that `OpAssign` basically isn't invoked during
initialization.
```S a = 5;```
Gets rewritten as:
``` S a(5);```
Thank you for your time!