std::function_ref
| 헤더 <functional>
|
||
template< class... >
class function_ref; // not defined
|
에 정의됨 | (C++26부터) |
template< class R, class... Args >
class function_ref<R(Args...)>;
template< class R, class... Args >
class function_ref<R(Args...) noexcept>;
template< class R, class... Args >
class function_ref<R(Args...) const>;
template< class R, class... Args >
class function_ref<R(Args...) const noexcept>;
|
(2) | (C++26부터) |
클래스 템플릿 std::function_ref은 소유권을 가지지 않는 함수 래퍼입니다. std::function_ref 객체는 호출 가능 대상에 대한 참조를 저장하고 호출할 수 있습니다. - 함수, 람다 표현식, bind 표현식 또는 다른 함수 객체. 단, 멤버 함수 포인터와 멤버 객체 포인터는 제외됩니다. std::nontype를 사용하여 std::function_ref을 생성할 수 있습니다. 함수 포인터, 멤버 함수 포인터 및 멤버 객체 포인터를 전달하여 생성합니다.
std::function_ref는 템플릿 매개변수에 제공된 cv-한정자 (volatile 제외) 및 noexcept-지정자의 모든 가능한 조합을 지원합니다.
의 모든 특수화는 std::function_ref는 TriviallyCopyable 타입이며 copyable을 만족합니다.
멤버 타입
| 멤버 | 정의 |
BoundEntityType
(private)
|
지정되지 않음
TriviallyCopyable
요구 사항을 충족하고
copyable
개념을 만족하며 객체 포인터 값이나 함수 포인터 값을 저장할 수 있는 타입
( 설명 전용 멤버 타입* ) |
FunctionPointerType
(private)
|
R
(
*
)
(
BoundEntityType
, Args
&&
...
)
noexcept
(
noex
)
여기서
noex
는
true
(
|
데이터 멤버
| 멤버 | 정의 |
BoundEntityType
bound-entity
|
바인딩된 엔티티 객체
( 설명 전용 멤버 객체* ) |
FunctionPointerType
thunk-ptr
|
저장된 함수 포인터
( 설명 전용 멤버 객체* ) |
멤버 함수
새로운
function_ref
객체를 생성합니다
(public member function) |
|
function_ref
를 할당합니다
(public member function) |
|
function_ref
의 저장된 썽크(thunk)를 호출합니다
(public member function) |
추론 가이드
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_function_ref
|
202306L
|
(C++26) |
std::function_ref
|
예제
|
이 섹션은 불완전합니다
이유: 예시 |
참고 항목
|
(C++11)
|
복사 생성 가능한 모든 호출 가능 객체의 복사 가능 래퍼
(클래스 템플릿) |
|
(C++26)
|
주어진 호출 시그니처에서 한정자를 지원하는 복사 생성 가능한 모든 호출 가능 객체의 복사 가능 래퍼
(클래스 템플릿) |
|
(C++23)
|
주어진 호출 시그니처에서 한정자를 지원하는 모든 호출 가능 객체의 이동 전용 래퍼
(클래스 템플릿) |
|
(C++26)
|
값 생성 태그
(태그) |