On Sat, Feb 06, 2021 at 02:01:28AM +0000, Jack via Digitalmars-d-learn wrote: > in C/C++ you have void* and C#'s object, to create a variable to hold > a genetic type. So in C# you can do: > > class A { > object foo; > } > > and > > var a = new A(); > a.foo = any class...; > > does D have something like this or template parameters are used > instead of?
D has void*. But if you have a class, it's probably better to use the universal base class Object, which is more type-safe. Alternatively, check out std.variant, which provides true dynamic typing as a tagged union. T -- "You know, maybe we don't *need* enemies." "Yeah, best friends are about all I can take." -- Calvin & Hobbes