table of contents
        
      
      
    | std::swap(std::function)(3) | C++ Standard Libary | std::swap(std::function)(3) | 
NAME¶
std::swap(std::function) - std::swap(std::function)
Synopsis¶
 Defined in header <functional>
  
   template< class R, class... Args >
  
   void swap( std::function<R(Args...)> &lhs,
    std::function<R(Args...)> (since C++11)
  
   &rhs ) noexcept;
  
   Overloads the std::swap algorithm for std::function. Exchanges the state of
    lhs with
  
   that of rhs. Effectively calls lhs.swap(rhs).
Parameters¶
lhs, rhs - polymorphic function wrappers whose states to swap
Return value¶
(none)
Example¶
// Run this code
  
   #include <functional>
  
   #include <iostream>
  
   void foo(const char* str, int x) {
  
   std::cout << "foo(\"" << str <<
    "\", " << x << ")\n";
  
   }
  
   void bar(const char* str, int x) {
  
   std::cout << "bar(\"" << str <<
    "\", " << x << ")\n";
  
   }
  
   int main()
  
   {
  
   std::function<void(const char*, int)> f1{ foo };
  
   std::function<void(const char*, int)> f2{ bar };
  
   f1("f1", 1);
  
   f2("f2", 2);
  
   std::cout << "std::swap(f1, f2);\n";
  
   std::swap(f1, f2);
  
   f1("f1", 1);
  
   f2("f2", 2);
  
   }
Output:¶
 foo("f1", 1)
  
   bar("f2", 2)
  
   std::swap(f1, f2);
  
   bar("f1", 1)
  
   foo("f2", 2)
  
   Defect reports
  
   The following behavior-changing defect reports were applied retroactively to
  
   previously published C++ standards.
  
   DR Applied to Behavior as published Correct behavior
  
   LWG 2062 C++11 overload of swap for function was not required required
  
   to be noexcept
See also¶
 swap swaps the contents
  
   (public member function)
  
   swap(std::move_only_function) overloads the std::swap algorithm
  
   (C++23) (function)
| 2022.07.31 | http://cppreference.com |