Re: Null argument and function resolution
Two options: 1) add an overload that takes typeof(null) this(typeof(null)) { /* handles the null literal specially */ } 2) Cast null to a specific type when making it: new YourClass(cast(ubyte*) null);
Re: Null argument and function resolution
The first answer is the one I was looking for. Very useful. You should add to next "this week in d" tips. On Wednesday, 27 May 2015 at 14:09:48 UTC, Adam D. Ruppe wrote: Two options: 1) add an overload that takes typeof(null) this(typeof(null)) { /* handles the null literal specially */ } 2) Cast null to a specific type when making it: new YourClass(cast(ubyte*) null);
Re: Null argument and function resolution
On Wed, 27 May 2015 14:09:47 +, Adam D. Ruppe wrote: > Two options: > > 1) add an overload that takes typeof(null) > > this(typeof(null)) { /* handles the null literal specially */ } you keep breaking my "box of thinking". ;-) never thought about such declaration. signature.asc Description: PGP signature
Re: Null argument and function resolution
On Wednesday, 27 May 2015 at 19:38:16 UTC, ketmar wrote: On Wed, 27 May 2015 14:09:47 +, Adam D. Ruppe wrote: Two options: 1) add an overload that takes typeof(null) this(typeof(null)) { /* handles the null literal specially */ } you keep breaking my "box of thinking". ;-) never thought about such declaration. Unfortunately, there is no equivalent way to disable assignment of [] at compile time. struct ArrayWrapper(T) { T[] a; this(T[] arr) { a = arr; } //Doesn't work; Conflicts with this(T[] arr) //@disable this(typeof(this)[]); //Doesn't work; hijacked by this(T[] arr) //@disable this(typeof([])); }
Re: Null argument and function resolution
On 05/27/2015 10:09 PM, Meta wrote: On Wednesday, 27 May 2015 at 19:38:16 UTC, ketmar wrote: On Wed, 27 May 2015 14:09:47 +, Adam D. Ruppe wrote: Two options: 1) add an overload that takes typeof(null) this(typeof(null)) { /* handles the null literal specially */ } you keep breaking my "box of thinking". ;-) never thought about such declaration. Unfortunately, there is no equivalent way to disable assignment of [] at compile time. struct ArrayWrapper(T) { T[] a; this(T[] arr) { a = arr; } //Doesn't work; Conflicts with this(T[] arr) //@disable this(typeof(this)[]); //Doesn't work; hijacked by this(T[] arr) //@disable this(typeof([])); } https://issues.dlang.org/show_bug.cgi?id=7007