digitalmars.D.learn - Null argument and function resolution
- Andrea Fontana (9/9) May 27 2015 Check this example:
- Adam D. Ruppe (5/5) May 27 2015 Two options:
- Andrea Fontana (3/8) May 27 2015 The first answer is the one I was looking for. Very useful.
- ketmar (3/8) May 27 2015 you keep breaking my "box of thinking". ;-) never thought about such=20
- Meta (14/23) May 27 2015 Unfortunately, there is no equivalent way to disable assignment
- Timon Gehr (2/24) May 27 2015 https://issues.dlang.org/show_bug.cgi?id=7007
Check this example: http://dpaste.dzfl.pl/53f85bae4382 Calling with null, both c-tor match. Is there a way to solve this? Something like: this(in ubyte* data) if( ??? ) { } Andrea
May 27 2015
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);
May 27 2015
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);
May 27 2015
On Wed, 27 May 2015 14:09:47 +0000, Adam D. Ruppe wrote:Two options: =20 1) add an overload that takes typeof(null) =20 this(typeof(null)) { /* handles the null literal specially */ }you keep breaking my "box of thinking". ;-) never thought about such=20 declaration.=
May 27 2015
On Wednesday, 27 May 2015 at 19:38:16 UTC, ketmar wrote:On Wed, 27 May 2015 14:09:47 +0000, Adam D. Ruppe wrote: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([])); }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.
May 27 2015
On 05/27/2015 10:09 PM, Meta wrote:On Wednesday, 27 May 2015 at 19:38:16 UTC, ketmar wrote:https://issues.dlang.org/show_bug.cgi?id=7007On Wed, 27 May 2015 14:09:47 +0000, Adam D. Ruppe wrote: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([])); }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.
May 27 2015