The std::plus, std::minus, std::multiplies, std::divides, std::modulus and std::negate are function objects from the <functional> header that wrap the corresponding arithmetic operators.
Since C++14, these objects also provide a void specialization that relies on type deduction for both arguments.
Compiler Explorer link: https://compiler-explorer.com/z/PWGYWKWcT