|
1359 | 1359 | shall denote the same type. |
1360 | 1360 | \end{itemize} |
1361 | 1361 |
|
| 1362 | +\pnum |
| 1363 | +\indexlibraryglobal{\tcode{\placeholder{unspecified-exception}}}% |
| 1364 | +Various function templates in subclause \ref{exec.snd} |
| 1365 | +can throw an exception of type \exposid{unspecified-exception}. |
| 1366 | +Each such exception object is of an unspecified type |
| 1367 | +such that a \grammarterm{handler} of type \tcode{exception} |
| 1368 | +matches\iref{except.handle} the exception object |
| 1369 | +but a \grammarterm{handler} of type \tcode{dependent_sender_error} does not. |
| 1370 | +\begin{note} |
| 1371 | +There is no requirement that two such exception objects have the same type. |
| 1372 | +\end{note} |
| 1373 | + |
1362 | 1374 | \rSec2[exec.snd.expos]{Exposition-only entities} |
1363 | 1375 |
|
1364 | 1376 | \pnum |
|
2064 | 2076 | } |
2065 | 2077 | }; |
2066 | 2078 | \end{codeblock} |
2067 | | -where \tcode{\placeholder{unspecified-exception}} is |
2068 | | -a type derived from \tcode{exception}. |
2069 | 2079 |
|
2070 | 2080 | \pnum |
2071 | 2081 | \indexlibraryglobal{\exposid{decay-copyable-result-datums}} |
|
2078 | 2088 | }); |
2079 | 2089 | } |
2080 | 2090 | \end{codeblock} |
2081 | | -where \tcode{\placeholder{unspecified-exception}} is |
2082 | | -a type derived from \tcode{exception}. |
2083 | 2091 |
|
2084 | 2092 | \begin{itemdecl} |
2085 | 2093 | template<class T, class Context> |
|
2982 | 2990 |
|
2983 | 2991 | \pnum |
2984 | 2992 | \throws |
2985 | | -An exception of an unspecified type derived from \tcode{exception} if |
| 2993 | +An exception of type |
| 2994 | +\tcode{\placeholder{unspecified-exception}}\iref{exec.snd.general} if |
2986 | 2995 | the expression \tcode{Q()(env)} is ill-formed or has type \tcode{void}, where |
2987 | 2996 | \tcode{env} is an lvalue subexpression whose type is \tcode{Env}. |
2988 | 2997 | \end{itemdescr} |
|
3818 | 3827 | }; |
3819 | 3828 | cs.@\exposid{for-each}@(@\exposid{overload-set}@{fn, [](auto){}}); |
3820 | 3829 | \end{codeblock} |
3821 | | -where \tcode{\placeholder{unspecified-exception}} is |
3822 | | -a type derived from \tcode{exception}. |
3823 | 3830 | \end{itemdescr} |
3824 | 3831 |
|
3825 | 3832 | \pnum |
|
3968 | 3975 | }; |
3969 | 3976 | cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){})); |
3970 | 3977 | \end{codeblock} |
3971 | | -where \tcode{\placeholder{unspecified-exception}} is |
3972 | | -a type derived from \tcode{exception}, and |
3973 | 3978 | where \tcode{\placeholder{is-valid-let-sender}} is \tcode{true} if and only if |
3974 | 3979 | all of the following are \tcode{true}: |
3975 | 3980 | \begin{itemize} |
|
4254 | 4259 | }; |
4255 | 4260 | cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){})); |
4256 | 4261 | \end{codeblock} |
4257 | | -where \tcode{\placeholder{unspecified-exception}} is |
4258 | | -a type derived from \tcode{exception}. |
4259 | 4262 | \end{itemdescr} |
4260 | 4263 |
|
4261 | 4264 | \pnum |
|
4473 | 4476 | }; |
4474 | 4477 | (fn.template operator()<@\exposid{child-type}@<Sndr, Is>>(), ...); |
4475 | 4478 | \end{codeblock} |
4476 | | -where \tcode{\placeholder{unspecified-exception}} is |
4477 | | -a type derived from \tcode{exception}. |
4478 | 4479 |
|
4479 | 4480 | \pnum |
4480 | 4481 | \throws |
4481 | 4482 | Any exception thrown as a result of evaluating the \Fundescx{Effects}, or |
4482 | | -an exception of an unspecified type |
4483 | | -derived from \tcode{exception} when \tcode{CD} is ill-formed. |
| 4483 | +an exception of type |
| 4484 | +\tcode{\placeholder{unspecified-\brk{}exception}}\iref{exec.snd.general} |
| 4485 | +when \tcode{CD} is ill-formed. |
4484 | 4486 | \end{itemdescr} |
4485 | 4487 |
|
4486 | 4488 | \pnum |
|
4818 | 4820 | }; |
4819 | 4821 | } |
4820 | 4822 | \end{codeblock} |
4821 | | -where \tcode{\placeholder{unspecified-exception}} is |
4822 | | -a type derived from \tcode{exception}. |
4823 | 4823 |
|
4824 | 4824 | \pnum |
4825 | 4825 | Let \tcode{sndr} and \tcode{env} be subexpressions |
|
5339 | 5339 |
|
5340 | 5340 | \pnum |
5341 | 5341 | Let \tcode{\placeholder{ssource-t}} be an unspecified type |
5342 | | -that models \exposconcept{stoppable-source} and |
5343 | | -let \tcode{ssource} be an lvalue of type \tcode{\placeholder{ssource-t}}. |
| 5342 | +that models \exposconcept{stoppable-source} and \libconcept{default_initializable}, |
| 5343 | +such that a default-initialized object of type \tcode{\placeholder{ssource-t}} |
| 5344 | +has an associated stop state. |
| 5345 | +Let \tcode{ssource} be an lvalue of type \tcode{\placeholder{ssource-t}}. |
5344 | 5346 | Let \tcode{\placeholder{stoken-t}} be \tcode{decltype(ssource.get_token())}. |
5345 | 5347 | Let \exposid{future-spawned-sender} be the alias template: |
5346 | 5348 |
|
|
8530 | 8532 |
|
8531 | 8533 | \pnum |
8532 | 8534 | \returns |
8533 | | -A non-null shared pointer to an object |
8534 | | -that implements the \tcode{parallel_scheduler_backend} interface. |
| 8535 | +An object \tcode{p}, |
| 8536 | +such that \tcode{p.get()} points to a \tcode{parallel_scheduler_backend} object |
| 8537 | +that is a base-class subobject |
| 8538 | +of some most derived object \tcode{o} within its lifetime. |
| 8539 | +The lifetime of \tcode{o} does not end |
| 8540 | +as long as there exists a \tcode{shared_ptr} object \tcode{q} within its lifetime |
| 8541 | +such that \tcode{q.owner_equal(p)} is \tcode{true}. |
8535 | 8542 |
|
8536 | 8543 | \pnum |
8537 | 8544 | \remarks |
|
8562 | 8569 | \begin{itemdescr} |
8563 | 8570 | \pnum |
8564 | 8571 | \expects |
8565 | | -The ends of |
8566 | | -the lifetimes of \tcode{*this}, |
8567 | | -the object referred to by \tcode{r}, and |
8568 | | -any storage referenced by \tcode{s} |
| 8572 | +The ends |
| 8573 | +of the lifetime of \tcode{*this}, |
| 8574 | +of the lifetime of the object referred to by \tcode{r}, and |
| 8575 | +of the duration of any storage referenced by \tcode{s} |
8569 | 8576 | all happen after |
8570 | 8577 | the beginning of the evaluation of |
8571 | | -the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_done} |
| 8578 | +the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped} |
8572 | 8579 | on \tcode{r} (see below). |
8573 | 8580 |
|
8574 | 8581 | \pnum |
|
8607 | 8614 | \begin{itemdescr} |
8608 | 8615 | \pnum |
8609 | 8616 | \expects |
8610 | | -The ends of |
8611 | | -the lifetimes of \tcode{*this}, |
8612 | | -the object referred to by \tcode{r}, and |
8613 | | -any storage referenced by \tcode{s} |
| 8617 | +The ends |
| 8618 | +of the lifetime of \tcode{*this}, |
| 8619 | +of the lifetime of the object referred to by \tcode{r}, and |
| 8620 | +of the duration of any storage referenced by \tcode{s} |
8614 | 8621 | all happen after |
8615 | | -the beginning of the evaluation of one of the expressions below. |
| 8622 | +the beginning of the evaluation of the call to |
| 8623 | +\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped} |
| 8624 | +on \tcode{r} (see below). |
8616 | 8625 |
|
8617 | 8626 | \pnum |
8618 | 8627 | \effects |
|
8666 | 8675 | \begin{itemdescr} |
8667 | 8676 | \pnum |
8668 | 8677 | \expects |
8669 | | -The ends of |
8670 | | -the lifetimes of \tcode{*this}, |
8671 | | -the object referred to by \tcode{r}, and |
8672 | | -any storage referenced by \tcode{s} |
| 8678 | +The ends |
| 8679 | +of the lifetime of \tcode{*this}, |
| 8680 | +of the lifetime of the object referred to by \tcode{r}, and |
| 8681 | +of the duration of any storage referenced by \tcode{s} |
8673 | 8682 | all happen after |
8674 | | -the beginning of the evaluation of one of the expressions below. |
| 8683 | +the beginning of the evaluation of the call to |
| 8684 | +\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped} |
| 8685 | +on \tcode{r} (see below). |
8675 | 8686 |
|
8676 | 8687 | \pnum |
8677 | 8688 | \effects |
|
0 commit comments