On Monday, 12 June 2017 at 00:13:46 UTC, Adam D. Ruppe wrote:
On Sunday, 11 June 2017 at 00:28:58 UTC, Andrei Alexandrescu
wrote:
// Also possible (no change to the language)
enum bool isInputRange(R) =
is(typeof((ref R r) => r)) && msg("must be copyable")
Or how about
enum bool isInputRange(R) =
isCopyable!R &&
supportsBoolEmpty!R &&
supportsFront!R &&
supportsPopFront!R;
and the compiler just calls out which condition didn't match?
Much better. Probably could be a bit more generic than that :)
&& is(typeof(lvalueOf!R.popFront)) && msg("must support
back");
hey look you already messed up the string by repeating it.
Exactly my point.
-Steve