Thread overview | ||||||
---|---|---|---|---|---|---|
|
April 04, 2018 Get the type of 'alias this =' | ||||
---|---|---|---|---|
| ||||
Hello people from D-land. Short question: Can get the type of a struct that has `alias this = <type>` ? See this example, where a struct is aliased to an enum: enum Enum { one, two, three, fourtytwo } private template Mix() { this(Enum ee) { e = ee; } Enum e; alias this = e; } struct A { mixin Mix } struct B { mixin Mix } T foo(T) (T f) if (is(T == A) || is(T == B) || is(T == Enum)) // |------------------------------------------| // ^ I want to change this into something more nice looking { // ... } I want to check the type in a more 'cleaner' way. Best regards, Vladimirs Nordholm |
April 04, 2018 Re: Get the type of 'alias this =' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimirs Nordholm | On Wednesday, 4 April 2018 at 15:49:31 UTC, Vladimirs Nordholm wrote:
> private template Mix()
> {
> this(Enum ee) { e = ee; }
> Enum e;
> alias this = e;
> }
Oops, typo in the alias. Should be `alias e this`
|
April 04, 2018 Re: Get the type of 'alias this =' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimirs Nordholm | On Wednesday, 4 April 2018 at 15:49:31 UTC, Vladimirs Nordholm wrote:
> if (is(T == A) || is(T == B) || is(T == Enum))
if (is(T : Enum))
--
Simen
|
April 04, 2018 Re: Get the type of 'alias this =' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Kjærås | On Wednesday, 4 April 2018 at 15:57:19 UTC, Simen Kjærås wrote:
> On Wednesday, 4 April 2018 at 15:49:31 UTC, Vladimirs Nordholm wrote:
>> if (is(T == A) || is(T == B) || is(T == Enum))
>
> if (is(T : Enum))
>
> --
> Simen
Ah! Thanks a lot!
|
Copyright © 1999-2021 by the D Language Foundation