Thanks for the tips guys. I have another similar issue now, I want to check whether a type passes any of the predicates I list. This would be similar to anySatisfy, however anySatisfy takes one predicate and multiple types, and what I need is one type and multiple predicates, e.g.:
anyPredicateSatisfy!(int, isNumeric, isIntegral); I've tried copying anySatisfy's code and modifying it to work: template anyPredicateSatisfy(T, F...) { static if (F.length == 0) { enum bool anySatisfy = false; } else static if (F.length == 1) { enum bool anySatisfy = (F[0])!T; } else { enum bool anySatisfy = (F[0])!T) || anySatisfy!(T, F[1 .. $]); } } But the compiler thinks I'm doing C-style casts so this doesn't work. Any clues?