FreeBSD Manual Pages
std::modulus(3) C++ Standard Libary std::modulus(3) NAME std::modulus - std::modulus Synopsis Defined in header <functional> template<> (since C++14) class modulus<void>; std::modulus<void> is a specialization of std::modulus with parame- ter and return type deduced. Member functions operator() returns the modulus of two arguments (public member function) std::modulus<void>::operator() template< class T, class U > constexpr auto operator()( T&& lhs, U&& rhs ) const -> decltype(std::forward<T>(lhs) % std::forward<U>(rhs)); Returns the remainder of the division of lhs by rhs. Parameters lhs, rhs - values to divide Return value std::forward<T>(lhs) % std::forward<U>(rhs). Example // Run this code #include <functional> #include <iostream> struct M { M(int x) { std::cout << "M(" << x << ");\n"; } M() {} }; auto operator%(M, M) { std::cout << "operator%(M, M);\n"; return M{}; } auto operator%(M, int) { std::cout << "operator%(M, int);\n"; return M{}; } auto operator%(int, M) { std::cout << "operator%(int, M);\n"; return M{}; } int main() { M m; // 42 is converted into a temporary object M{42} std::modulus<M>{}(m, 42); // calls operator%(M, M) // no temporary object std::modulus<void>{}(m, 42); // calls operator%(M, int) std::modulus<void>{}(42, m); // calls operator%(int, M) } Output: M(42); operator%(M, M); operator%(M, int); operator%(int, M); http://cppreference.com 2024.06.10 std::modulus(3)
NAME | Synopsis | Member functions | Parameters | Return value | Example | Output:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::modulus&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
