Namespaces
Variants

std::function<R(Args...)>::swap

cppreference.net에서
 
 
유틸리티 라이브러리
언어 지원
타입 지원 (기본 타입, RTTI)
라이브러리 기능 테스트 매크로 (C++20)
프로그램 유틸리티
가변 인자 함수
코루틴 지원 (C++20)
계약 지원 (C++26)
삼자 비교
(C++20)
(C++20) (C++20) (C++20)    
(C++20) (C++20) (C++20)

일반 유틸리티
관계 연산자 (C++20에서 폐지됨)
 
함수 객체
함수 호출
(C++17) (C++23)
항등 함수 객체
(C++20)
투명 연산자 래퍼
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
이전 바인더 및 어댑터
(C++17까지*)
(C++17까지*)
(C++17까지*)
(C++17까지*)  
(C++17까지*)
(C++17까지*) (C++17까지*) (C++17까지*) (C++17까지*)
(C++20까지*)
(C++20까지*)
(C++17까지*) (C++17까지*)
(C++17까지*) (C++17까지*)

(C++17까지*)
(C++17까지*) (C++17까지*) (C++17까지*) (C++17까지*)
(C++20까지*)
(C++20까지*)
 
 
void swap( function& other ) noexcept;
(C++11부터)

*thisother 의 저장된 호출 가능 객체를 교환합니다.

매개변수

other - 저장된 호출 가능 객체를 교환하기 위한 함수 래퍼

반환 값

(없음)

예제

#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 << "f1.swap(f2);\n";
    f1.swap(f2);
    f1("f1", 1);
    f2("f2", 2);
}

출력:

foo("f1", 1)
bar("f2", 2)
f1.swap(f2);
bar("f1", 1)
foo("f2", 2)

참고 항목

두 개의 std::move_only_function 객체의 대상을 교환합니다
( std::move_only_function 의 public 멤버 함수)