On Wednesday, 26 July 2017 at 16:50:35 UTC, Andre Pany wrote:
mixin(`static if (!__traits(compiles,
typeof(`~T.stringof~`.`~p.name~`))) {
...
}
FYI, you shouldn't use .stringof here. Just use `T` instead of
`T.stringof`.
Creating new class for checking whether the class has a
specific member is not possible in my scenario, as a DLL call
is involved and I need the result (member available) as
condition for static if.
This doesn't *actually* create a new class, it just compiles as
if you would to make sure it has a valid `this` for it in the
type system.
You could also use `typeof(TBounds.init.Left)`, which is actually
even better than `new` since it doesn't require the constructor
arguments.
But in either case, that code isn't actually run, it just looks
for the non-static member function.
Due you think typeof should work within member methods and I
should file an issue?
I'm not sure... I could go either way on it since there is a
reasonable answer here (int), but since it is non-static, trying
to use it in an actual expression IS an error so it makes sense
for typeof(error) to also be an error...