2020 Fall Library Evolution Polls

Published Proposal,

Issue Tracking:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++


This paper contains the decision polls that the C++ Library Evolution group will take in Fall of 2020.


These decision polls will be conducted electronically; see [P2195R0] for more information.. Details on how to participate in these polls will be distributed on the Library Evolution mailing list. All committee members may vote, but if you have not participated in the Library Evolution discussions of executors, please choose to not vote.

The tentative timeline for these votes is as follows:


Each poll consists of a statement; you vote on whether you support the statement. All polls will be 5-way polls; you’ll vote either strongly for, weakly for, neutral, weakly against, or strongly against.

Executor Polls

The following C++ Library Evolution polls relate to executors ([P0443R13]), a proposed set of abstractions for asynchronously creating and managing execution agents. These polls are based on the reports of the six breakout groups that reviewed various aspects of the executors proposal in the Summer of 2020 ([P2202R0], [P2203R0], [P2183R0], [P2205R0], [P2206R0], and [P2207R0]).

Poll 0

Remove explicit adaptation (apply [P2235R0] to [P0443R14]):

Poll 1

Use one class for each individual trait instead of combined traits classes (sender_traits, etc).

Poll 2

Remove static_thread_pool from [P0443R14] (it may be pursued in a follow-on proposal).

Poll 3

Remove any_executor from [P0443R14] (it may be pursued in a follow-on proposal).

Poll 4

Remove any_executor::target and any_executor::target_type from [P0443R14].

Poll 5

Executors are sufficiently mature that we should aim to ship them in C++23.

Other Polls

Poll 6

Send [P2212R1] (Relax Requirements for time_point::clock) to LWG for C++23, classified as a bug fix/enhancement of an existing feature ([P0592R4] bucket 2 item).

Poll 7

Send [P2166R1] (Prohibit basic_string and basic_string_view Construction from nullptr) to LWG for C++23, classified as a bug fix/enhancement of an existing feature ([P0592R4] bucket 2 item).

Poll 8

Send [P2161R0] (Remove Default Candidate Executor) to LWG for the Networking TS Working Draft, classified as a focus work item ([[P0592R4 bucket 1 item).


Informative References

Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, D. S. Hollman, Lee Howes, Kirk Shoop, Lewis Baker, Eric Niebler. A Unified Executors Proposal for C++. 2 March 2020. URL: https://wg21.link/p0443r13
Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, H. Carter Edwards, Gordon Brown, D. S. Hollman. A Unified Executors Proposal for C++. 15 September 2020. URL: https://wg21.link/p0443r14
Ville Voutilainen. To boldly suggest an overall plan for C++23. 25 November 2019. URL: https://wg21.link/p0592r4
Robert Leahy. Remove Default Candidate Executor. 14 May 2020. URL: https://wg21.link/p2161r0
Yuriy Chernyshov. A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr. 7 September 2020. URL: https://wg21.link/p2166r1
David Olsen, Ruslan Arutyunyan, Michael J. Voss, Michał Dominiak, Chris Kohlhoff, D.S. Hollman, Kirk Shoop, Inbal Levi. Executors Review: Properties. 14 July 2020. URL: https://wg21.link/p2183r0
Bryce Adelstein Lelbach. Electronic Straw Polls. 15 September 2020. URL: https://wg21.link/p2195r0
Gašper Ažman, Tony van Eerd, Thomas Rodgers, Tomasz Kamiński, Corentin Jabot, Robert Leahy, Gordon Brown, Kirk Shoop, Eric Niebler, Dietmar Kühl. Senders/Receivers group Executors review report. 15 July 2020. URL: https://wg21.link/p2202r0
Ryan McDougall, Tomasz Kamiński, Conor Hoekstra, Bryan St. Amour. LEWG Executors Customization Point Report. 15 July 2020. URL: https://wg21.link/p2203r0
Inbal Levi, Ruslan Arutyunyan, Zach Laine, Tom Scogland, Dmitri Mokhov, Chris Kohlhoff, Daisy Hollman, Jared Hoberock. Executors Review - Polymorphic Executor. 19 August 2020. URL: https://wg21.link/p2205r0
Ruslan Arutyunyan, Ben Craig, Guy Davidson, Anuya Welling, Michael Voss, Tom Scogland, Chris Kohlhoff, Gordon Brown, Lee Howes. Executors Thread Pool review report. 2 September 2020. URL: https://wg21.link/p2206r0
Guy Davidson, Ben Craig, Robert Leahy, Michał Dominiak, Alexey Kukanov, Hartmut Kaiser, Daisy Hollman, Jared Hoberock, Gordon Brown. Executors review: concepts breakout group report. 14 August 2020. URL: https://wg21.link/p2207r0
Alexey Dmitriev, Howard Hinnant. Relax Requirements for time_point::clock. 14 September 2020. URL: https://wg21.link/p2212r1
Ville Voutilainen. Disentangling Schedulers and Executors. 2020-10-15. URL: https://isocpp.org/files/papers/P2235R0.html