https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114862
Bug ID: 114862 Summary: std::uppercase not applying to nan's and inf's Product: gcc Version: 13.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: lcarreon at bigpond dot net.au Target Milestone: --- The following code: #include <limits> #include <iostream> #include <iomanip> int main() { double values[] = { std::numeric_limits<double>::quiet_NaN(), -std::numeric_limits<double>::quiet_NaN(), std::numeric_limits<double>::signaling_NaN(), -std::numeric_limits<double>::signaling_NaN(), std::numeric_limits<double>::infinity(), -std::numeric_limits<double>::infinity() }; for (const auto& value : values) { std::cout << std::uppercase << std::fixed << std::setw(17) << std::left << value << " " << std::fixed << std::setw(10) << std::left << std::setprecision(0) << value << " " << std::fixed << std::setw(15) << std::left << std::setprecision(4) << value << " " << std::fixed << std::setw(17) << std::left << std::setprecision(6) << value << std::endl; } return 0; } Generates the following output: nan nan nan nan -nan -nan -nan -nan nan nan nan nan -nan -nan -nan -nan inf inf inf inf -inf -inf -inf -inf Which in my opinion is incorrect because it is not applying std::uppercase.