The utility library provides negators not1 and not2 that return the complement of the unary or binary predicate. A predicate is an object that takes one or two arguments and returns something convertible to bool.