On Monday, 28 September 2020 at 14:23:12 UTC, Ruby The Roobster wrote:
On Monday, 28 September 2020 at 14:22:34 UTC, Ruby The Roobster wrote:
I meant User Defined types. not UDAs. Anyways, the whole thing is me trying to find a hacky workaround that allows something similar to multiple alias this declarations(because multiple of these are not possible). And for this, I have to determine if a normal number is being passed, or if an user defined type is being passed through the parameter.

I mean type, not number

There's the `parent` trait. You can wrap it like this:

```
import std;
class Foo {
    int x;
}
struct Bar {
    Foo f;
}
Foo g;

enum hasParent(alias sym) = is(__traits(parent, sym) == class) || is(__traits(parent, sym) == struct);

void main() {
   writeln(hasParent!(Bar.f));   // true
   writeln(hasParent!(g));
}
```


Reply via email to