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

P3056 R0 what ostream exception #1724

Open
wg21bot opened this issue Dec 19, 2023 · 2 comments
Open

P3056 R0 what ostream exception #1724

wg21bot opened this issue Dec 19, 2023 · 2 comments
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWGI Library Evolution Incubator size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Dec 19, 2023

P3056R0 what ostream exception (Jarrad J. Waterloo)

@wg21bot wg21bot added the LEWG Library Evolution label Dec 19, 2023
@wg21bot wg21bot added this to the 2024-telecon milestone Dec 19, 2023
@cor3ntin cor3ntin added the ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list label Dec 19, 2023
@inbal2l inbal2l added size - medium paper size estimate C++26 Targeted at C++26 B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e LEWGI Library Evolution Incubator IS Ship vehicle: IS scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed LEWGI Library Evolution Incubator labels Jan 2, 2024
@inbal2l
Copy link
Collaborator

inbal2l commented Mar 5, 2024

LEWG Mailing list review for collecting feedback on P3056R0 was started on 2024-02-13

@inbal2l
Copy link
Collaborator

inbal2l commented Apr 23, 2024

ML review closed by Steve Downey on 2024-03-06 (outcomes).
The author published a paper aims to encapsulate the feedback under a different number: P3170R0

Summary

Info from the thread (to be considered during the discussion):

Concerns:

  • Virtual functions will not be called correctly and won't solve the issue.
  • Request for the proposal to be implemented in a standard library implementation.
  • Concern that implementation details "leak" to the proposal (if standard library implementation doesn't internally use a std::string to store its .what() message, or if copies of std::string are made).
  • Proposal coupling ostreams and exceptions together.
  • [exception]/2 ( https://eel.is/c++draft/exception#2), suggests there's no conforming implementation that can take advantage of this.
  • Blanket C++03 requirement: result in std::terminate when an exception object copy constructor throws:
    "— when the exception handling mechanism, after completing evaluation of the expression to be thrown but before the exception is caught (15.1), calls a user function that exits via an uncaught exception,134)"

Suggestions supported:

  • Addition of rvalue overloads: string&& taking constructors to potentially has value, as it does no harm and can potentially do good.
  • (came up in the thread) Possibly adding a string_view versions of the constructors.

Related references (thanks, Zhihao):

  • P2490: Zero-overhead exception stacktraces
  • P2370: Stacktrace from exception

Next Steps

The new paper (P3170R0) will be reviewed by LEWGI

@inbal2l inbal2l added LEWGI Library Evolution Incubator B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 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 LEWG Library Evolution labels Apr 23, 2024
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 B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWGI Library Evolution Incubator size - medium paper size estimate
Projects
Development

No branches or pull requests

3 participants