1. Introduction
This paper contains the decision polls that the C++ Library Evolution group will take in Fall of 2020.
2. Voting
These decision polls will be conducted electronically; see [P2195R1] for more information on electronic voting procedures.
All committee members may vote, but if you have not participated in the Library Evolution discussions of a poll, please choose to not vote.
2.1. How to Vote
A documents.isocpp.org account is necessary to vote. If you have an isocpp.org/papers account, a documents.isocpp.org account has been created for you. Just go to documents.isocpp.org and reset your password by email. Email Bryce Adelstein Lelbach if you do not have an account or are having trouble accessing your account.
If you see "Form not found" when you go to the above link, you are not signed in to documents.isocpp.org. Go to documents.isocpp.org and sign in first.
You will not receive a confirmation email after voting. The Library Evolution chairs will send a confirmation to all voters before the close of the poll.
If you need to change how you voted or have any questions or issues about voting, please email Bryce Adelstein Lelbach.
2.2. Voting Timeline
-
2020-10-13: Draft polls distributed by mailing list.
-
2020-10-22: Final discussion telecon on the polls. Start of the polling period.
-
2020-11-16: Chairs send a reminder to all voters of how they voted.
-
2020-11-19: End of the polling period.
-
2020-11-20: Chairs share results and summarize consensus and conclusions of the results.
3. Polls
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 favor", "weakly favor", "neutral", "weakly against", or "strongly against". If you do not want to participate in a poll, select the "I do not want to participate in this poll" option. Those who do not participate in a poll will not be counted or recorded.
Each poll has a comment field. Please write a few sentences explaining the rationale for your vote.
Poll results and comments will be shared with Library Evolution after the end of the polling period, including attribution of your votes and comments.
If you want to discuss the polls or how you plan on voting, please start an email thread on the Library Evolution mailing list.
3.1. Executor Polls
The following C++ Library Evolution polls relate to executors ([P0443R14]), 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]).
3.1.1. Poll 0
Remove implicit adaptation from [P0443R14] (Executors) by applying [P2235R0] to [P0443R14]) which will:
-
Make
only takeschedule
s.scheduler -
Make
only takeexecute
s.executor -
Make sender and receiver operations like
only take senders and receivers.connect -
Add explicit adaptation from
toexecutor
(scheduler
) but not vice versa.make_scheduler_from_executor
3.1.2. Poll 1
Use one class for each individual trait instead of combined traits classes
(
, etc) in [P0443R14] (Executors).
3.1.3. Poll 2
Remove
from [P0443R14] (Executors).
It may be pursued in a follow-on proposal.
3.1.4. Poll 3
Remove
from [P0443R14] (Executors).
It may be pursued in a follow-on proposal.
3.1.5. Poll 4
Remove
and
from [P0443R14] (Executors).
3.1.6. Poll 5
[P0443R14] (Executors) is sufficiently mature that we should aim to ship it in C++23.
3.2. Other Polls
3.2.1. Poll 6
Send [P2212R1] (Relax Requirements for
) to LWG for C++23,
classified as an improvement of an existing feature ([P0592R4] bucket
2 item).
3.2.2. Poll 7
Send [P2166R1] (Prohibit
and
Construction
from
) to LWG for C++23, classified as an improvement of an
existing feature ([P0592R4] bucket 2 item).
3.2.3. Poll 8
Send [P2161R2] (Remove Default Candidate Executor) to LWG for the Networking TS Working Draft, classified as a focus work item ([P0592R4] bucket 1 item).