On 6/11/17 1:32 PM, Sebastiaan Koppe wrote:
What about using ddoc?
enum bool isInputRange(R) =
is(typeof((ref R r) => r)) /// must be copyable
&& is(ReturnType!((R r) => r.empty) == bool) /// must support bool
empty
&& is(typeof(lvalueOf!R.front)) /// must support front
&& is(typeof(lvalueOf!R.popFront)) /// must support back
If there's going to be compiler magic, this seems like a sensible
syntax--documenting constraints is a good idea anyway, particularly for
those of us who aren't is-expression masters.