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

P2291 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header #984

Closed
wg21bot opened this issue Feb 22, 2021 · 9 comments
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e C++23 Targeted at C++23 constexpr expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - small paper size estimate tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Feb 22, 2021

P2291R0 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header (Daniil Goncharov, Karaev Alexander)

@wg21bot wg21bot added LEWG Library Evolution LEWGI Library Evolution Incubator LWG Library labels Feb 22, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Feb 22, 2021
@cor3ntin cor3ntin added ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed LWG Library LEWGI Library Evolution Incubator labels Feb 22, 2021
@cor3ntin
Copy link

cor3ntin commented Apr 26, 2021

Mailing list review Summary:

  • No implementation concerns for libstdc++, should be possible for libc++ too
  • Please put the wording in code font
  • Use __cpp_lib_constexpr_charconv as feature macro

No further comment that would indicate interest

Direction: Update the wording and send to a LEWG telecon

@cor3ntin cor3ntin added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - small paper size estimate needs-revision Paper needs changes before it can proceed and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels Apr 26, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented May 21, 2021

P2291R1 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header (Daniil Goncharov, Karaev Alexander)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label May 21, 2021
@brycelelbach brycelelbach added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e labels May 25, 2021
@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 labels Jul 25, 2021
@inbal2l
Copy link
Collaborator

inbal2l commented Jul 26, 2021

The paper will be scheduled for the next LEWG electronic polling period.

@brycelelbach brycelelbach added C++23 Targeted at C++23 IS Ship vehicle: IS constexpr labels Aug 1, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Aug 23, 2021

P2291R2 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header (Daniil Goncharov, Karaev Alexander)

@brycelelbach brycelelbach changed the title P2291 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header P2291 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header Sep 6, 2021
@brycelelbach brycelelbach changed the title P2291 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header P2291 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header Sep 6, 2021
@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 Sep 9, 2021
@brycelelbach brycelelbach added the expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. label Sep 18, 2021
@brycelelbach
Copy link

2021 September Library Evolution Polls

P2451: 2021 September Library Evolution Poll Outcomes

Poll 5: Send P2291R2 (Add constexpr Modifiers To Functions to_chars And from_chars For Integral Types In <charconv> Header) to Library Working Group for C++23, classified as an improvement of an existing feature (P0592R4 bucket 2 item).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
13 7 1 0 0

Outcome: Strong consensus in favor.

Selected Comments

Having finally specified these most basic operations in a way that is appropriate for the language, it only makes sense that they would be made available for compile time programming. The lack of floating-point support is an obviously necessary concession to practicality which can hopefully be eventually addressed.

— Strongly Favor

According to implementers this is not hard to provide and would allow constexpr format in the future, which is an useful feature to have. It would certainly help some constexpr libraries like CTRE, etc.

— Strongly Favor

This is a step in the right direction, we should make functionality available in constexpr context unless there is a good reason not to.

— Strongly Favor

This seems straightforward, and it has been tested, and it's the kind of thing you would expect to be able to do at compile time.

— Weakly Favor

I know that this change will be a welcome one for implementers of libraries like CTRE. However, I'm concerned that this will require implementation heroics to prevent large compile time costs for all files that only include <charconv> for use at runtime. Although there are obvious approaches that could be used to mitigate this, the paper doesn't discuss the additional compile time overhead of moving integral to_chars/from_chars into the header nor possible mitigations.

— Neutral

@brycelelbach brycelelbach removed LEWG Library Evolution 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 expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. labels Sep 25, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 26, 2021

P2291R3 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header (Daniil Goncharov, Karaev Alexander)

@JeffGarland JeffGarland added the LWG Library label Nov 16, 2021
@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@brycelelbach brycelelbach added the expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. label Feb 23, 2022
@JeffGarland
Copy link
Member

LWG reviewed an approved by unanimous consent for c++23 on 2022-05-06

@JeffGarland JeffGarland added the tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. label May 6, 2022
@cor3ntin cor3ntin added the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Jul 25, 2022
@tkoeppe
Copy link

tkoeppe commented Aug 16, 2022

This has been applied.

@tkoeppe tkoeppe closed this as completed Aug 16, 2022
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++23 Targeted at C++23 constexpr expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. size - small paper size estimate tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Projects
None yet
Development

No branches or pull requests

7 participants