SG16 will hold a meeting today, Wednesday, March 12th, at 19:30 UTC (timezone conversion).
I apologize for the very late agenda. I had specifically set
aside an hour to get this done at 2am on Sunday, but that hour
never happened. Speaking of which...
For those in North America, please note that daylight savings time has begun, so this meeting will begin one hour later relative to the last meeting.
If you need a .ics file to import into your calendar, you can download it here.
The agenda follows.
P2873R0 was
previously reviewed by SG16 during the 2023-05-24
and 2023-10-25
meeting (briefly and tangentially, search for "P2873"). These
reviews followed previous discussion of the same topic/proposal in
the context of P2139R2
(Reviewing Deprecated Facilities of C++20 for C++23) section
D.22 (Deprecated locale category facets [depr.locale.category])
during the 2020-07-22
SG16 meeting. There was no consensus for removal during the
2020-07-22 review, but there was consensus for no objection
against removal (should LEWG decide to do so despite no SG16
recommendation to remove). No concerns were raised in the more
recent reviews, but we never polled actually forwarding the paper.
The later revisions have not altered what is proposed (beyond
adding an annex C entry), but have significantly expanded the
history, the design concerns with these facets, the motivation for
deprecation, and the current implementation status with regard to
the deprecation. LEWG reviewed P2873R2 during its 2025-03-04
meeting and approved it for inclusion in C++26/C++29 pending
SG16 agreement. We'll discuss and poll forwarding absent new
concerns that would justify reconsideration in LEWG. LEWG's polls
were unanimously in favor of the proposal as is.
P3395R0 comes to
us courtesy of Victor and proposals portable formatting of std::error_code category names, values,
and messages. For example, the following code might produce the
annotated output.
std::error_code ec((int)std::errc::no_such_file_or_directory, std::generic_category());
std::print("{}\n", ec); // prints "generic:2"
std::print("{:s}\n", ec); // prints "No such file or directory"
Of course, there wouldn't be much to talk about in SG16 if there
weren't complications. The encoding of the strings returned by std::error_category::name() ([syserr.errcat.virtuals]p1)
and std::error_category::message()
([syserr.errcat.virtuals]p5)
are not well specified in the standard. The proposal acknowledges
this, suggests clarifications, and proposes that the new std::error_code formatter perform
necessary transcoding. See also LWG 4156 (error_category messages have
unspecified encoding). The concerns are similar to those we
previously discussed for LWG 4087
(Standard exception messages have unspecified encoding).
Tom.