How to get the type of a derived class in a method of its base class?
Mike Parker via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Feb 19 01:26:29 PST 2017
On Sunday, 19 February 2017 at 07:52:13 UTC, Max Samukha wrote:
> class A {
> this(T = this)() {
> static assert(is(T == B));
> }
> }
>
> class B {
> }
>
> auto b = new B;
>
> Here, T becomes A, which may be reasonable but is completely
> useless. Is there a way to obtain the type of the class (or
> class instance reference) the method is called on?
I believe template this parameters[1] are what you're looking for
here.
https://dlang.org/spec/template.html#template_this_parameter
More information about the Digitalmars-d-learn
mailing list