module des.arch.util; import std.meta; /// template staticFilter(alias F, T...) { static if (T.length == 0) { alias staticFilter = AliasSeq!(); } else static if (T.length == 1) { static if( F!(T[0]) ) alias staticFilter = AliasSeq!(T[0]); else alias staticFilter = AliasSeq!(); } else { alias staticFilter = AliasSeq!( staticFilter!(F, T[ 0 .. $/2]), staticFilter!(F, T[$/2 .. $ ]) ); } }