Derived type

Mike Parker aldacron at gmail.com
Tue Mar 30 13:43:52 UTC 2021


On Tuesday, 30 March 2021 at 13:28:55 UTC, novice3 wrote:

>
> This messages dont help me understand, which type should i use.
> What i should change?
> Or Typedef template should be changes?

 From the docs:

"Unlike the alias feature, Typedef ensures the two types are not 
considered as equals.
Parameters:"

https://dlang.org/phobos/std_typecons.html#Typedef


> Any Typedef alternatives?

If you want your new type to be interchangeable with another, the 
straightforward way is just to use an alias. Buf if you need a 
more concrete type, you can use alias this in a struct:

import std.stdio;

struct MyType {
     void* wrapped;
     alias wrapped this;
}


void doSomething(void* t) {
     writeln(*(cast(int*)t));
}

void main() {
     int i = 20;
     MyType mt = MyType(&i);
     doSomething(mt);
}



More information about the Digitalmars-d-learn mailing list