Namespaces
Variants

std::reference_wrapper<T>::operator()

출처: ko.cppreference.net
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐기됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
교체 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
함수 객체
함수 호출
(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++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까지*)
 
 
template< class... ArgTypes >
typename std::result_of<T&(ArgTypes&&...)>::type
    operator() ( ArgTypes&&... args ) const;
(C++11부터)
(C++17까지)
template< class... ArgTypes >
std::invoke_result_t<T&, ArgTypes...>
    operator() ( ArgTypes&&... args ) const noexcept(/* see below */);
(C++17부터)
(C++20부터 constexpr)

저장된 참조가 가리키는 Callable 객체를 INVOKE(get(), std::forward<ArgTypes>(args)...)를 통해 호출합니다. 이 함수는 저장된 참조가 Callable 객체를 가리키는 경우에만 사용 가능합니다.

T는 완전한 타입이어야 합니다.

매개변수

args - 호출된 함수에 전달할 인수

반환값

호출된 함수의 반환 값.

예외

구현 정의 예외를 throw할 수 있습니다.

(since C++11)
(until C++17)
noexcept 명세:
noexcept ( std:: is_nothrow_invocable_v < T & , ArgTypes... > )
(since C++17)

예제

#include <functional>
#include <iostream>
void f1()
{
    std::cout << "reference to function called\n";
}
void f2(int n)
{
    std::cout << "bind expression called with " << n << " as the argument\n";
}
int main()
{
    std::reference_wrapper<void()> ref1 = std::ref(f1);
    ref1();
    auto b = std::bind(f2, std::placeholders::_1);
    auto ref2 = std::ref(b);
    ref2(7);
    auto c = []{ std::cout << "lambda function called\n"; };
    auto ref3 = std::ref(c);
    ref3();
}

출력:

reference to function called
bind expression called with 7 as the argument
lambda function called

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3764 C++17 operator ( ) is not noexcept propagate noexcept

참고 항목

저장된 참조에 접근
(public member function)