test if object is instance of class at compile time
Elvis Maehren
maehlvis at googlemail.com
Wed Dec 21 12:15:34 PST 2011
This works fine at runtime, but explodes in CTFE:
---
bool isInstanceOf(T, O)(O o) {
return (cast(T) o) !is null;
}
---
CTFE doesn't like "!is null" ("cannot compare [...] at compile time").
Moreover, in CTFE a failed cast terminates the interpretation ("cannot
reinterpret class from [...] to [...] at compile time"). Is this somehow
catchable? If so, I could do something along these lines:
---
if(__ctfe) {
try {
auto t = cast(T) o;
return true;
} catch {
return false;
}
}
---
More information about the Digitalmars-d-learn
mailing list