https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91480
Bug ID: 91480
Summary: Nonconforming definitions of standard library
feature-test macros
Product: gcc
Version: 9.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: frankhb1989 at gmail dot com
Target Milestone: ---
These macros are lacking of the `L` suffix compared to the content of the table
in [support.limits.general]. This can lead to some unexpected effects on
observable behavior, e.g.:
#include <string>
#include <iostream>
#define macro_as_string(x) #x
#define stringized_length(x) std::string(macro_as_string(x)).size()
int main()
{
std::cout << stringized_length(__cpp_lib_nonmember_container_access);
}
Also, in <bits/allocator.h>, `__cpp_lib_allocator_traits_is_always_equal` is
wrongly spelled as `__cpp_lib_allocator_is_always_equal`.