Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::modulus<void>

      From cppreference.com
      <cpp‎ |utility‎ |functional
       
       
      Utilities library
       
      Function objects
      Function invocation
      (C++17)(C++23)
      Identity function object
      (C++20)
      Transparent operator wrappers
      (C++14)
      (C++14)
      (C++14)
      (C++14)  
      (C++14)
      modulus<>
      (C++14)
      (C++14)
      (C++14)
      (C++14)
      (C++14)
      Old binders and adaptors
      (until C++17*)
      (until C++17*)
      (until C++17*)
      (until C++17*)  
      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
      (until C++17*)(until C++17*)
      (until C++17*)(until C++17*)

      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
       
      Defined in header<functional>
      template<>
      class modulus<void>;
      (since C++14)

      std::modulus<void> is a specialization ofstd::modulus with parameter and return type deduced.

      Contents

      [edit]Nested types

      Nested type Definition
      is_transparentunspecified

      [edit]Member functions

      operator()
      returns the modulus of two arguments
      (public member function)

      std::modulus<void>::operator()

      template<class T,class U>

      constexprauto operator()( T&& lhs, U&& rhs)const

         -> decltype(std::forward<T>(lhs)%std::forward<U>(rhs));

      Returns the remainder of the division oflhs byrhs.

      Parameters

      lhs, rhs - values to divide

      Return value

      std::forward<T>(lhs)%std::forward<U>(rhs).

      [edit]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 objectstd::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);
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/modulus_void&oldid=164779"

      [8]ページ先頭

      ©2009-2025 Movatter.jp