|
224 | 224 | Let \tcode{ctx} be the execution context returned by the executor's \tcode{context()} member function. An executor becomes invalid when the first call to \tcode{ctx.shutdown()} returns. The effect of calling \tcode{on_work_started}, \tcode{on_work_finished}, \tcode{dispatch}, \tcode{post}, or \tcode{defer} on an invalid executor is undefined. \begin{note} The copy constructor, comparison operators, and \tcode{context()} member function continue to remain valid until \tcode{ctx} is destroyed. \end{note}
|
225 | 225 |
|
226 | 226 | \pnum
|
227 |
| -In Table~\ref{tab:async.reqmts.executor.requirements}, \tcode{x1} and \tcode{x2} denote (possibly const) values of type \tcode{X}, \tcode{mx1} denotes an xvalue of type \tcode{X}, \tcode{f} denotes a \tcode{MoveConstructible} (\CppXref{moveconstructible}) function object callable with zero arguments, \tcode{a} denotes a (possibly const) value of type \tcode{A} meeting the \tcode{Allocator} requirements (\CppXref{allocator.requirements}), and \tcode{u} denotes an identifier. |
| 227 | +In Table~\ref{tab:async.reqmts.executor.requirements}, |
| 228 | +\tcode{x1} and \tcode{x2} denote values of type \tcode{X} or \tcode{const X}, |
| 229 | +\tcode{mx1} denotes an xvalue of type \tcode{X}, |
| 230 | +\tcode{f} denotes a \tcode{MoveConstructible} (\CppXref{moveconstructible}) function object callable with zero arguments, |
| 231 | +\tcode{a} denotes a value of type \tcode{A} or \tcode{const A} |
| 232 | +where \tcode{A} is a type meeting the \tcode{Allocator} requirements (\CppXref{allocator.requirements}), |
| 233 | +and \tcode{u} denotes an identifier. |
228 | 234 |
|
229 | 235 | \begin{libreqtab3}
|
230 | 236 | {Executor requirements}
|
|
395 | 401 | An associator shall be a class template that takes two template type arguments. The first template argument is the source type \tcode{S}. The second template argument is the candidate type \tcode{C}. The second template argument shall be defaulted to some default candidate type \tcode{D} that satisfies the type requirements \tcode{R}.
|
396 | 402 |
|
397 | 403 | \pnum
|
398 |
| -An associator shall additionally satisfy the requirements in Table~\ref{tab:async.reqmts.associator.requirements}. In this table, \tcode{X} is a class template that meets the associator requirements, \tcode{S} is the source type, \tcode{s} is a (possibly const) value of type \tcode{S}, \tcode{C} is the candidate type, \tcode{c} is a (possibly const) value of type \tcode{C}, \tcode{D} is the default candidate type, and \tcode{d} is a (possibly const) value of type \tcode{D} that is the default candidate object. |
| 404 | +An associator shall additionally satisfy the requirements in Table~\ref{tab:async.reqmts.associator.requirements}. |
| 405 | +In this table, \tcode{X} is a class template that meets the associator requirements, |
| 406 | +\tcode{S} is the source type, |
| 407 | +\tcode{s} is a value of type \tcode{S} or \tcode{const S}, |
| 408 | +\tcode{C} is the candidate type, |
| 409 | +\tcode{c} is a value of type \tcode{C} or \tcode{const C}, |
| 410 | +\tcode{D} is the default candidate type, |
| 411 | +and \tcode{d} is a value of type \tcode{D} or \tcode{const D} that is the default candidate object. |
399 | 412 |
|
400 | 413 | \begin{libreqtab3}
|
401 | 414 | {Associator requirements}
|
|
921 | 934 |
|
922 | 935 | \indextext{requirements!\idxcode{associated_allocator} specializations}%
|
923 | 936 | \pnum
|
924 |
| -Specializations of \tcode{associated_allocator} shall satisfy the requirements in Table~\ref{tab:async.assoc.alloc.requirements}. In this table, \tcode{X} is a specialization of \tcode{associated_allocator} for the template parameters \tcode{T} and \tcode{ProtoAllocator}; \tcode{t} is a value of (possibly const) \tcode{T}; and \tcode{a} is an object of type \tcode{ProtoAllocator}. |
| 937 | +Specializations of \tcode{associated_allocator} shall satisfy the requirements in Table~\ref{tab:async.assoc.alloc.requirements}. |
| 938 | +In this table, \tcode{X} is a specialization of \tcode{associated_allocator} |
| 939 | +for the template parameters \tcode{T} and \tcode{ProtoAllocator}; |
| 940 | +\tcode{t} is a value of type \tcode{T} or \tcode{const T}; |
| 941 | +and \tcode{a} is an object of type \tcode{ProtoAllocator}. |
925 | 942 |
|
926 | 943 | \begin{libreqtab3}
|
927 | 944 | {\tcode{associated_allocator} specialization requirements}
|
|
1378 | 1395 |
|
1379 | 1396 | \indextext{requirements!\idxcode{associated_executor} specializations}%
|
1380 | 1397 | \pnum
|
1381 |
| -Specializations of \tcode{associated_executor} shall satisfy the requirements in Table~\ref{tab:async.assoc.exec.requirements}. In this table, \tcode{X} is a specialization of \tcode{associated_executor} for the template parameters \tcode{T} and \tcode{Executor}; \tcode{t} is a value of (possibly const) \tcode{T}; and \tcode{e} is an object of type \tcode{Executor}. |
| 1398 | +Specializations of \tcode{associated_executor} shall satisfy the requirements in Table~\ref{tab:async.assoc.exec.requirements}. |
| 1399 | +In this table, \tcode{X} is a specialization of \tcode{associated_executor} |
| 1400 | +for the template parameters \tcode{T} and \tcode{Executor}; |
| 1401 | +\tcode{t} is a value of \tcode{T} or \tcode{const T}; |
| 1402 | +and \tcode{e} is an object of type \tcode{Executor}. |
1382 | 1403 |
|
1383 | 1404 | \begin{libreqtab3}
|
1384 | 1405 | {\tcode{associated_executor} specialization requirements}
|
|
0 commit comments