P3734R0 — Not all predicates must be regular
Jan Schultke
SG9
Some algorithms, such as `std::remove_if` and `std::copy_if` are over-constrained by requiring the predicate to be regular, despite the predicate visiting elements exactly once, making the requirement meaningless. These constraints should be relaxed.