Document Number: N3042=10-0032
Date: 2010-02-15
Project: Programming Language C++

Detlef Vollmann <dv@vollmann.ch>

N3042: Renaming launch::any and what asyncs really might be

Introduction

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.

Discussion

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 launch::any is unfortunate, as it only allows for "calling in another thread" and "calling in the same thread".

So I propose to change launch::any to launch::any_sync.

Proposed Changes

In 30.6.1 [futures.overview], header <future> synopsis, enum class launch:
Change:

any

to

any_sync