Fix reference to asio::query customisation point.

This commit is contained in:
Christopher Kohlhoff 2020-07-28 12:47:38 +10:00
parent ab336ac55b
commit 51842da799
2 changed files with 11 additions and 10 deletions

View File

@ -41,9 +41,9 @@ namespace execution {
* @li <tt>S.bulk_execute(F, N)</tt>, if that expression is valid. If the
* function selected does not execute <tt>N</tt> invocations of the function
* object <tt>F</tt> on the executor <tt>S</tt> in bulk with forward progress
* guarantee <tt>std::query(S, execution::bulk_guarantee)</tt>, and the result
* of that function does not model <tt>sender<void></tt>, the program is
* ill-formed with no diagnostic required.
* guarantee <tt>asio::query(S, execution::bulk_guarantee)</tt>, and
* the result of that function does not model <tt>sender<void></tt>, the
* program is ill-formed with no diagnostic required.
*
* @li Otherwise, <tt>bulk_execute(S, F, N)</tt>, if that expression is valid,
* with overload resolution performed in a context that includes the
@ -51,13 +51,14 @@ namespace execution {
* declaration of <tt>execution::bulk_execute</tt>. If the function selected
* by overload resolution does not execute <tt>N</tt> invocations of the
* function object <tt>F</tt> on the executor <tt>S</tt> in bulk with forward
* progress guarantee <tt>std::query(E, execution::bulk_guarantee)</tt>, and
* the result of that function does not model <tt>sender<void></tt>, the
* program is ill-formed with no diagnostic required.
* progress guarantee <tt>asio::query(E,
* execution::bulk_guarantee)</tt>, and the result of that function does not
* model <tt>sender<void></tt>, the program is ill-formed with no diagnostic
* required.
*
* @li Otherwise, if the types <tt>F</tt> and
* <tt>executor_index_t<remove_cvref_t<S>></tt> model <tt>invocable</tt> and
* if <tt>std::query(S, execution::bulk_guarantee)</tt> equals
* if <tt>asio::query(S, execution::bulk_guarantee)</tt> equals
* <tt>execution::bulk_guarantee.unsequenced</tt>, then
*
* - Evaluates <tt>DECAY_COPY(std::forward<decltype(F)>(F))</tt> on the

View File

@ -67139,13 +67139,13 @@ A customisation point that creates a bulk sender.
The name `execution::bulk_execute` denotes a customisation point object. If `is_convertible_v<N, size_t>` is true, then the expression `execution::bulk_execute(S, F, N)` for some subexpressions `S`, `F`, and `N` is expression-equivalent to:
* `S.bulk_execute(F, N)`, if that expression is valid. If the function selected does not execute `N` invocations of the function object `F` on the executor `S` in bulk with forward progress guarantee `std::query(S, execution::bulk_guarantee)`, and the result of that function does not model `sender<void>`, the program is ill-formed with no diagnostic required.
* `S.bulk_execute(F, N)`, if that expression is valid. If the function selected does not execute `N` invocations of the function object `F` on the executor `S` in bulk with forward progress guarantee `asio::query(S, execution::bulk_guarantee)`, and the result of that function does not model `sender<void>`, the program is ill-formed with no diagnostic required.
* Otherwise, `bulk_execute(S, F, N)`, if that expression is valid, with overload resolution performed in a context that includes the declaration `void bulk_execute();` and that does not include a declaration of `execution::bulk_execute`. If the function selected by overload resolution does not execute `N` invocations of the function object `F` on the executor `S` in bulk with forward progress guarantee `std::query(E, execution::bulk_guarantee)`, and the result of that function does not model `sender<void>`, the program is ill-formed with no diagnostic required.
* Otherwise, `bulk_execute(S, F, N)`, if that expression is valid, with overload resolution performed in a context that includes the declaration `void bulk_execute();` and that does not include a declaration of `execution::bulk_execute`. If the function selected by overload resolution does not execute `N` invocations of the function object `F` on the executor `S` in bulk with forward progress guarantee `asio::query(E, execution::bulk_guarantee)`, and the result of that function does not model `sender<void>`, the program is ill-formed with no diagnostic required.
* Otherwise, if the types `F` and `executor_index_t<remove_cvref_t<S>>` model `invocable` and if `std::query(S, execution::bulk_guarantee)` equals `execution::bulk_guarantee.unsequenced`, then
* Otherwise, if the types `F` and `executor_index_t<remove_cvref_t<S>>` model `invocable` and if `asio::query(S, execution::bulk_guarantee)` equals `execution::bulk_guarantee.unsequenced`, then
* Evaluates `DECAY_COPY(std::forward<decltype(F)>(F))` on the calling thread to create a function object `cf`. [Note: Additional copies of `cf` may subsequently be created. --end note.]