assert (not (false)); assert (not!false); auto a = false; assert (not (a)); assert (not!a); enum b = false; assert (not (b)); assert (not!b); auto c () {return false;} assert (not (c)); assert (not!c); auto d (int x){return x == 1;} assert (not (d(0))); assert (not!d (0)); alias e = not!d; assert (e(0)); assert (not!e (1)); assert (not!(x => x % 2 == 0)(1));
named logical not operator (!), runtime predicate inversion, and boolean symbol inversion