On 6/17/12 7:23 AM, Philippe Sigaud wrote: > An obvious generalization is to template the struct on a predicate: > > struct Constrained(T, alias pred) { Nice idea, but it should be said that making the predicate opaque prevents the implementer from taking advantage of its properties. Andrei