THURSDAY, AUGUST 6, 2026
libstdc++
std::errc constants for UNIX STREAMS deprecated
Several std::errc constants related to UNIX STREAMS are now deprecated.
In accordance with LWG3869, GCC’s libstdc++ has deprecated the std::errc constants no_message_available, no_stream_resources, not_a_stream, and stream_timeout. These constants are related to UNIX STREAMS functionality. The deprecation is marked with the _GLIBCXX23_DEPRECATED attribute.
In Details
The constants errc::no_message_available, errc::no_stream_resources, errc::not_a_stream, and errc::stream_timeout are marked with _GLIBCXX23_DEPRECATED in error_constants.h across various platform configurations (djgpp, generic, mingw32-w64). This aligns with LWG3869's recommendation to deprecate these UNIX STREAMS-related error codes.
For Context
- std::errc
- An enumeration type in C++ that defines a set of common error condition codes, often used with
std::error_codeandstd::system_error. - UNIX STREAMS
- A framework in UNIX-like operating systems for handling character-based input/output, typically involving modules that process data streams.
- LWG3869
- A proposal or issue number from the C++ Library Working Group (LWG) that led to the deprecation of these specific
std::errcconstants. - _GLIBCXX23_DEPRECATED
- A macro used in libstdc++ to mark entities as deprecated, typically indicating that they should not be used in new code and may be removed in future versions.