On Friday, 11 September 2015 at 19:51:09 UTC, Dave Akers wrote:
Would it be possible to create it as an 'as' template?
Yeah, the way I'd do it is something like:
T as(T)() {
import std.traits;
static if(isIntegral!T)
return to!T(convert_to_some_int);
else static if(isSomeString!T)
return to!T(convert_to_some_string);
else /// and so on and so forth
}
These isX templates from std.traits will help you break down a
gazillion potential types into just a handful of type families
which are easier to handle.
But you could also just static if(is(T == something)) or whatever
to list the types you do want to support.