Using allSatisfy with template that takes multiple type arguments
Andrej Mitrovic
andrej.mitrovich at gmail.com
Tue Sep 27 13:50:36 PDT 2011
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?
More information about the Digitalmars-d-learn
mailing list