Skip to content

Commit 63928ee

Browse files
committed
[thread.jthread.cons] Revert editorial change from "if INVOKE(...) is a
valid expression" to checking is_invocable_v. It's unclear that this is exactly equivalent, and it seems less clear, as the "INVOKE(...)" expression is used again a couple of paragraphs later.
1 parent 224384a commit 63928ee

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

source/threads.tex

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,12 +1433,18 @@
14331433
\begin{itemdescr}
14341434
\pnum
14351435
\requires
1436-
\tcode{F} and each $\tcode{T}_i$ in \tcode{Args} shall meet the
1436+
\tcode{F} and each $\tcode{T}_i$ in \tcode{Args} meet the
14371437
\oldconcept{MoveConstructible} requirements.
14381438
Either
1439-
\tcode{is_invocable_v<decay_t<F>, stop_token, decay_t<Args>...>} is true,
1440-
or
1441-
\tcode{is_invocable_v<decay_t<F>, decay_t<Args>...>} is true.
1439+
\begin{codeblock}
1440+
@\placeholdernc{INVOKE}@(@\placeholdernc{decay-copy}@(std::forward<F>(f)), get_stop_token(),
1441+
@\placeholdernc{decay-copy}@(std::forward<Args>(args))...)
1442+
\end{codeblock}
1443+
is a valid expression or
1444+
\begin{codeblock}
1445+
@\placeholdernc{INVOKE}@(@\placeholdernc{decay-copy}@(std::forward<F>(f)), @\placeholdernc{decay-copy}@(std::forward<Args>(args))...)
1446+
\end{codeblock}
1447+
is a valid expression.
14421448

14431449
\pnum
14441450
\constraints
@@ -1449,21 +1455,15 @@
14491455
Initializes \tcode{ssource} and
14501456
constructs an object of type \tcode{jthread}.
14511457
The new thread of execution executes
1452-
\tcode{%
1453-
\placeholdernc{INVOKE}(\brk{}%
1454-
\placeholdernc{decay-copy}(\brk{}%
1455-
std::forward<F>(f)),
1456-
get_stop_token(),
1457-
\placeholdernc{decay-copy}(\brk{}%
1458-
std::forward\brk{}<Args>(\brk{}args))...)}
1458+
\begin{codeblock}
1459+
@\placeholdernc{INVOKE}@(@\placeholdernc{decay-copy}@(std::forward<F>(f)), get_stop_token(),
1460+
@\placeholdernc{decay-copy}@(std::forward<Args>(args))...)
1461+
\end{codeblock}
14591462
if that expression is well-formed,
14601463
otherwise
1461-
\tcode{%
1462-
\placeholdernc{INVOKE}(\brk{}%
1463-
\placeholdernc{decay-copy}(\brk{}%
1464-
std::forward\brk{}<F>\brk{}(f)),
1465-
\placeholdernc{decay-copy}(\brk{}%
1466-
std::forward<Args>(\brk{}args))...)}
1464+
\begin{codeblock}
1465+
@\placeholdernc{INVOKE}@(@\placeholdernc{decay-copy}@(std::forward<F>(f)), @\placeholdernc{decay-copy}@(std::forward<Args>(args))...)
1466+
\end{codeblock}
14671467
with the calls to
14681468
\tcode{\placeholder{decay-copy}} being evaluated in the constructing thread.
14691469
Any return value from this invocation is ignored.

0 commit comments

Comments
 (0)