Object Cast
Namespace
rswhite4 at googlemail.com
Thu Jun 21 03:33:39 PDT 2012
To solve the problem of converting a Object to a specific
template class i wrote this little function.
But the mixin disturbs me. How i can get the type (in this
example Vector2D) without to mix a mixin and T.stringof?
[code]
T object_cast(T : Object)(Object value) {
T val = cast(T) value;
if (val !is null) {
return val;
}
// if cast fails it is a template class
import std.typetuple;
foreach (Type; TypeTuple!(byte, ubyte, short, ushort, int, uint,
long, ulong, float, double, real)) {
mixin("
if (auto vec = cast(" ~ T.stringof ~ "!(" ~ Type.stringof ~
"))(value)) {
return cast(T) vec;
}");
}
return null;
}
[/code]
More information about the Digitalmars-d-learn
mailing list