This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.
codecvt_mode should be a bitmask typeSection: 99 [depr.locale.stdcvt] Status: Resolved Submitter: Jonathan Wakely Opened: 2015-06-08 Last modified: 2025-11-11
Priority: 3
View all other issues in [depr.locale.stdcvt].
View all issues with Resolved status.
Discussion:
The enumeration type codecvt_mode is effectively a bitmask type
(16.3.3.3.3 [bitmask.types]) with three elements, but isn't defined as
such.
codecvt_mode doesn't have overloaded
operators, making it very inconvenient to combine values:
std::codecvt_utf16<char32_t, 0x10FFFF, static_cast<std::codecvt_mode>(std::little_endian|std::generate_header)> cvt;
The static_cast harms readability and should not be necessary.
codecvt_mode is specified to be a bitmask type,
or as a minimal fix we provide an overloaded operator| that returns
the right type.
[2025-11-10 Resolved by the removal of codecvt_mode via paper P2871R3 in Kona, 2023. Status changed: New → Resolved.]
Proposed resolution: