std:: invocable, std:: regular_invocable
|
헤더 파일에 정의됨
<concepts>
|
||
|
template
<
class
F,
class
...
Args
>
concept invocable
=
|
(C++20부터) | |
|
template
<
class
F,
class
...
Args
>
concept regular_invocable = std :: invocable < F, Args... > ; |
(C++20부터) | |
invocable
개념은 호출 가능 타입
F
가 인수 집합
Args...
와 함께 함수 템플릿
std::invoke
를 사용하여 호출될 수 있음을 지정합니다.
regular_invocable
개념은
invocable
개념에
invoke
표현식이
등식 보존적(equality-preserving)
이어야 하며 함수 객체나 인수를 수정하지 않아야 한다는 요구사항을 추가합니다.
목차 |
동등성 보존
표준 라이브러리 개념의 requires expressions 에 선언된 표현식들은 equality-preserving 해야 합니다(다르게 명시된 경우를 제외하고).
참고 사항
invocable
와
regular_invocable
사이의 구분은 순전히 의미론적입니다.
난수 생성기는
invocable
을 만족할 수 있지만
regular_invocable
을 만족할 수 없습니다
(
희극적인 경우들
은 제외).
참조문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
-
18.7.2 개념
invocable[concept.invocable]
-
18.7.2 개념
-
-
18.7.3 개념
regular_invocable[concept.regularinvocable]
-
18.7.3 개념
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.7.2 개념
invocable[concept.invocable]
-
18.7.2 개념
-
-
18.7.3 개념
regular_invocable[concept.regularinvocable]
-
18.7.3 개념
참고 항목
|
주어진 인수 타입들로 (마치
std::invoke
를 사용하듯) 호출 가능한 타입인지 확인합니다
(클래스 템플릿) |
외부 링크
invocable
와
regular_invocable
를 모두 만족하는 난수 생성기의
농담 예시
입니다.
|