There are several concepts that group requirements of algorithms that take callable objects ( ISO/IEC 14882:2014 §[func.require]) as arguments.