On Tuesday, 10 November 2015 at 10:45:16 UTC, Atila Neves wrote:
[snip]
Updated.
Atila
As long as we're talking about syntax features that help this
emulate regular inheritance, would it be worth adding a feature
like this:
template MySuperType(T)
{
enum MySuperType = validate!T;
}
void doAThing(MySuperType T)(T val) { }
That would effectively lower to:
void doAThing(T)(T val) if(__traits(compiles, MySuperType!T)) { }
with better error reporting? This would certainly make the code
more readable, and would simplify the conditional dramatically if
you had more than 1 or 2 template parameters.