Expressing range constraints in CNF form
bachmeier via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jun 11 12:44:36 PDT 2017
On Sunday, 11 June 2017 at 15:25:11 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")
>>> && is(ReturnType!((R r) => r.empty) == bool) && msg("must
>>> support bool empty")
>>> && is(typeof(lvalueOf!R.front)) && msg("must support
>>> front")
>>> && is(typeof(lvalueOf!R.popFront)) && msg("must support
>>> back");
This would be a very nice change, but this syntax feels more
natural to me:
is(ReturnType!((R r) => r.empty) == bool, "must support bool
empty")
More information about the Digitalmars-d
mailing list