deduction guides for
std::packaged_task
From cppreference.net
<
cpp
|
thread
|
packaged task
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::packaged_task
| Member functions | ||||
| Getting the result | ||||
| Execution | ||||
| Non-member functions | ||||
| Helper classes | ||||
|
(until C++17)
|
||||
| Deduction guides (C++17) |
|
헤더 파일에 정의됨
<future>
|
||
|
template
<
class
R,
class
...
Args
>
packaged_task ( R ( * ) ( Args... ) ) - > packaged_task < R ( Args... ) > ; |
(1) | (C++17부터) |
|
template
<
class
F
>
packaged_task ( F ) - > packaged_task < /*see below*/ > ; |
(2) | (C++17부터) |
|
template
<
class
F
>
packaged_task ( F ) - > packaged_task < /*see below*/ > ; |
(3) | (C++23부터) |
|
template
<
class
F
>
packaged_task ( F ) - > packaged_task < /*see below*/ > ; |
(4) | (C++23부터) |
2)
이 오버로드는 다음 조건에서만 오버로드 해결에 참여합니다:
&
F
::
operator
(
)
가 평가되지 않은 피연산자로 취급될 때 올바른 형식을 가지며,
decltype
(
&
F
::
operator
(
)
)
가 다음 형식인 경우입니다
R
(
G
::
*
)
(
A...
)
(선택적으로 cv-qualified, 선택적으로 noexcept, 선택적으로 lvalue reference qualified). 추론된 타입은
std::
packaged_task
<
R
(
A...
)
>
입니다.
3)
이 오버로드는 다음 조건에서만 오버로드 해결에 참여합니다:
&
F
::
operator
(
)
가 평가되지 않은 피연산자로 취급될 때 올바른 형식이며,
F
::
operator
(
)
가
명시적 객체 매개변수 함수
이고 그 형식이
R
(
G, A...
)
또는
R
(
G, A...
)
noexcept
형태인 경우입니다. 추론된 형식은
std::
packaged_task
<
R
(
A...
)
>
입니다.
4)
이 오버로드는 다음 조건에서만 오버로드 해결에 참여합니다:
&
F
::
operator
(
)
가 평가되지 않은 피연산자로 취급될 때 올바른 형식을 가지며,
F
::
operator
(
)
가
정적 멤버 함수
이고 그 형식이
R
(
A...
)
또는
R
(
A...
)
noexcept
형태인 경우입니다. 추론된 형식은
std::
packaged_task
<
R
(
A...
)
>
입니다.
참고 사항
이러한 추론 가이드는 생략 부호 매개변수 를 가진 함수로부터의 추론을 허용하지 않으며, 타입 내의 ... 는 항상 팩 확장 으로 처리됩니다.
예제
이 코드 실행
#include <future> int func(double) { return 0; } int main() { std::packaged_task f{func}; // packaged_task<int(double)>로 추론됨 int i = 5; std::packaged_task g = [&](double) { return i; }; // => packaged_task<int(double)> }