digitalmars.D.learn - D equivalent of C++ explicit
- Tejas (2/2) Aug 19 2021 As the topic says:
- Paul Backus (2/4) Aug 19 2021 No, because all constructors are explicit in D.
- Tejas (4/9) Aug 19 2021 Oh... then I guess I'll have to manually insert the explicit
- Paul Backus (15/25) Aug 19 2021 Worth noting that in the specific case of variable
- Tejas (7/33) Aug 19 2021 Yeah I know that `OpAssign` basically isn't invoked during
- evilrat (5/15) Aug 19 2021 You don't have to, here is a binding generator with code
- Tejas (5/21) Aug 20 2021 Thank you!
As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?
Aug 19 2021
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.
Aug 19 2021
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: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: )As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?No, because all constructors are explicit in D.
Aug 19 2021
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: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 } ```On Thursday, 19 August 2021 at 17:38:14 UTC, Tejas wrote: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: )As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?No, because all constructors are explicit in D.
Aug 19 2021
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: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!On Thursday, 19 August 2021 at 17:43:59 UTC, Paul Backus wrote: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 } ```On Thursday, 19 August 2021 at 17:38:14 UTC, Tejas wrote: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: )As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?No, because all constructors are explicit in D.
Aug 19 2021
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:You don't have to, here is a binding generator with code conversion, even if it produces junk you can just copy paste relevant code. https://github.com/Superbelko/ohmygentoolOn Thursday, 19 August 2021 at 17:38:14 UTC, Tejas wrote: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: )As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?No, because all constructors are explicit in D.
Aug 19 2021
On Friday, 20 August 2021 at 05:43:49 UTC, evilrat wrote:On Thursday, 19 August 2021 at 18:04:58 UTC, Tejas wrote:Thank you! I've definitely been keeping an eye on your project since you mentioned it the last time. Good to know I can use it for this purpose :DOn Thursday, 19 August 2021 at 17:43:59 UTC, Paul Backus wrote:You don't have to, here is a binding generator with code conversion, even if it produces junk you can just copy paste relevant code. https://github.com/Superbelko/ohmygentoolOn Thursday, 19 August 2021 at 17:38:14 UTC, Tejas wrote: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: )As the topic says: Is there an equivalent to C++'s `explicit` keyword in D?No, because all constructors are explicit in D.
Aug 20 2021