Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2447 R6 std::span over an initializer list #1118

Closed
wg21bot opened this issue Oct 26, 2021 · 12 comments · Fixed by cplusplus/draft#6691
Closed

P2447 R6 std::span over an initializer list #1118

wg21bot opened this issue Oct 26, 2021 · 12 comments · Fixed by cplusplus/draft#6691
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - small paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 26, 2021

P2447R0 std::span and the missing constructor (Federico Kircheis)

@wg21bot wg21bot added the LEWG Library Evolution label Oct 26, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Oct 26, 2021
@brycelelbach brycelelbach added ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list size - small paper size estimate IS Ship vehicle: IS B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e labels Oct 31, 2021
@cor3ntin
Copy link

Mailing list review 2021-11-29

  • The proposed change breaks both CTAD for pairs of iterators (now deduced to a list), span, and makes overloads set with both a span and a const vector& ambiguous. This needs to be better explored in the paper
  • The paper motivation needs to be made clearer. The intent of the authors is to be able to replace vector by span in the parameter list and not to have to change the caller code at all
  • The paper should discuss constructing from a templated initializer constructor, which is fairly frequent in numerical code
  • This is fairly dangerous to add after the fact. Is it something that we want as a DR? In any case this issue should be visited fairly soon.
  • The author should explore whether a feature macro is necessary.

My feeling is that the mailing list reviewers are fairly split on the issue.

We should revisit this issue fairly quickly with a bigger group (telecon) , either before the February feature freeze or shortly thereafter.
In the meantime, we encourage the author to provide an analysis of the potential breakage of existing code

@cor3ntin cor3ntin added the C++23 Targeted at C++23 label Dec 13, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 18, 2021

P2447R1 std::span and the missing constructor (Federico Kircheis)

@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@cor3ntin cor3ntin added C++26 Targeted at C++26 and removed C++23 Targeted at C++23 labels Jan 18, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 22, 2022

P2447R2 std::span and the missing constructor (Federico Kircheis)

@cor3ntin cor3ntin added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Mar 29, 2022
@brycelelbach brycelelbach added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Jun 19, 2022
@nliber
Copy link
Collaborator

nliber commented Aug 2, 2022

2022-07-26 Library Evolution Telecon

P2447R2: std::span and the missing constructor

2022-07-26 Library Evolution Telecon Minutes

Chair: Nevin Liber

Minute Taker: Ben Craig

Champion: Federico Kircheis

Summary

There were concerns over whether or not adding the constructor was worth the cost (ease of creating a dangling reference, constructor ambiguity, etc.). Some suggested that if it were more explicit, either wrapping it with something like as_span(init_list) or using a literal (which would require a core language change), it might be more palatable, but that goes against other design decisions of span.

POLL: We should promise more committee time to pursuing P2447R2, knowing that our time is scarce and this will leave less time for other work

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
0 5 8 2 0

Attendance: 19

# of Authors: 1

Author Position: WF

Outcome: Weakly in favor

POLL: Send P2447R2 (std::span and the missing constructor) to LWG for C++26 classified as B2 (to be confirmed with a Library Evolution electronic poll)

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
2 2 5 4 1

Attendance: 19

# of Authors: 1

Author Position: SF

Outcome: No consensus

No consensus on the current design, and weakly in favor of exploring explicit designs.

Next Steps

Need an update to this paper exploring other designs if the author should so choose to pursue it.

@nliber nliber removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Aug 2, 2022
@brycelelbach brycelelbach added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting needs-revision Paper needs changes before it can proceed labels Aug 3, 2022
@jensmaurer jensmaurer removed this from the 2022-telecon milestone Jan 25, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 11, 2023

P2447R3 std::span over an initializer list (Arthur O'Dwyer, Federico Kircheis)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Apr 11, 2023
@wg21bot wg21bot added this to the 2023-telecon milestone Apr 11, 2023
@brycelelbach
Copy link

brycelelbach commented May 24, 2023

P2447R4 will be in the 2023-05 mailing.

@wg21bot wg21bot changed the title P2447 std::span and the missing constructor P2447 R4 std::span over an initializer list May 26, 2023
@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Aug 23, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Sep 16, 2023

2023-09-12 Library Evolution Telecon

LEWG discussed "P2447R4: Freestanding Library: inout expected span" on telecon (Full Minutes)

Champion: Arthur O'Dwyer

Chair: Fabio Fracassi

Minute Taker: Ben Craig

Summary

POLL: Forward P2447R4(span over braced initalizer_list) to LWG for C++26(and as a defect) (to be confirmed by electronic polling)

SF WF N WA SA
2 5 3 2 1

Attendance: 18

# of Authors: 1

Author Position: SF

Outcome: No consensus

POLL: Forward P2447R4(span over braced initalizer_list) to LWG for C++26 (to be confirmed by electronic polling)

SF WF N WA SA
2 6 4 1 1

Attendance: 18

# of Authors: 1

Author Position: SF

Outcome: Weak consensus

WA: I think this kind of small improvement doesn't belong to the standard, as it only helps function invocations while introducing breaking changes

Some concerns exist as to whether this belongs to the library, or can be achieved as an implementation improvement. The paper was forwarded to LWG for C++26, but there was no consensus to forward it as a DR for C++23.

As this is a breaking change, implementers will be informed.

Next Steps

The paper was forwarded to LWG for C++26 (to be confirmed by an electronic poll).

@inbal2l inbal2l added ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Sep 16, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Sep 16, 2023

P2447R4 was added to LEWG 2023 September electronic poll paper (P2972R0)

@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Sep 23, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 16, 2023

P2447R5 std::span over an initializer list (Arthur O'Dwyer, Federico Kircheis)

@wg21bot wg21bot changed the title P2447 R4 std::span over an initializer list P2447 R5 std::span over an initializer list Oct 16, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Oct 16, 2023

P2447R4 was forwarded to LWG on LEWG 2023 September electronic poll (P3020R0)

@inbal2l inbal2l added LWG Library lwg-pending LWG Chair needs to disposition and removed ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review LEWG Library Evolution labels Oct 16, 2023
@JeffGarland
Copy link
Member

JeffGarland commented Nov 11, 2023

Reviewed and approved Kona 2023

https://wiki.edg.com/bin/view/Wg21kona2023/LibraryWorkingGroup

Poll: put P2447r6 into C++26?

|F|A|N|
|6|2|2|

LWG 2023-11-10: Approved for plenary straw polls in Kona.

@JeffGarland JeffGarland added tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. and removed lwg-pending LWG Chair needs to disposition labels Nov 11, 2023
@inbal2l inbal2l added plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. and removed tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. labels Dec 17, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P2447R6 std::span over an initializer list (Arthur O'Dwyer, Federico Kircheis)

@wg21bot wg21bot changed the title P2447 R5 std::span over an initializer list P2447 R6 std::span over an initializer list Dec 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - small paper size estimate
Projects
Development

Successfully merging a pull request may close this issue.

7 participants