|Project:||Programming Language C++|
Detlef Vollmann <email@example.com>
N2996 introduced two new function calls
async to start
some function asynchronously and return a future
to obtain the result of the function.
N2996 allowed for two mechanisms to run that function: in another thread
or as deferred function in the same thread.
The two launching mechanisms defined by N2996 make sense for the current revision of the standard, but future revisions of C++ might allow for a much larger variety of launching mechanisms. Some potential mechanisms might be:
Some of these future mechanisms might want to use the existing
async function, just with a different launch policy.
With this in mind, the naming of
unfortunate, as it only allows for "calling in another thread"
and "calling in the same thread".
So I propose to change
In 30.6.1 [futures.overview], header
enum class launch:
In 30.6.9 [futures.async], paragraph 2, Effects clause:
The first function behaves the same as a call to the second function
with a policy argument of
the same arguments for
And in the tird bullet:
launch::— the implementation may choose either policy above at any call to