template generateEmptyFunction(C, func...)
{
}
template isAbstractFunction(T...)
if (T.length == 1)
{
    enum bool isAbstractFunction = __traits(isAbstractFunction, T[0]);
}
alias BlackHole(Base) = AutoImplement!(Base, generateEmptyFunction, isAbstractFunction);
class AutoImplement(Base, alias how, alias what = isAbstractFunction) : Base {}