On Tuesday, 14 February 2017 at 19:15:06 UTC, H. S. Teoh wrote:
This is already possible: enum fooConstraint(R) = isBidirectionalRange!Range && hasLvalueElements!Range && ... ;Range remove(SwapStrategy s, R)(...) if (fooConstraint!R) { ... }T
That's good to know. I didn't try that syntax, though, which explains why I couldn't get it to work.
