cpp/algorithm/ranges/is partitioned

@1@ Returns if all elements in the range  that satisfy the predicate  after projection appear before all elements that don't. Also returns  if  is empty.

@2@ Same as, but uses as the source range, as if using  as  and  as.

Return value
if the range is empty or is partitioned by,  otherwise.

Complexity
At most applications of  and.