* include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98. * testsuite/17_intro/names.cc: Check uses_allocator in C++98.
Tested powerpc64le-linux, committed to trunk. This should be backported too, as it should never have been declared for C++98.
commit cdbab4a65ff6fdbe44196a5903b27d06075e60e5 Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Oct 22 22:39:16 2019 +0100 Do not declare std::uses_allocator before C++11 * include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98. * testsuite/17_intro/names.cc: Check uses_allocator in C++98. diff --git a/libstdc++-v3/include/bits/memoryfwd.h b/libstdc++-v3/include/bits/memoryfwd.h index d42eabeceb8..6542adc1cdd 100644 --- a/libstdc++-v3/include/bits/memoryfwd.h +++ b/libstdc++-v3/include/bits/memoryfwd.h @@ -68,9 +68,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION class allocator<void>; #endif +#if __cplusplus >= 201103L /// Declare uses_allocator so it can be specialized in \<queue\> etc. template<typename, typename> struct uses_allocator; +#endif /// @} group memory diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc index 3d6148fa0e8..81a1d6fdf46 100644 --- a/libstdc++-v3/testsuite/17_intro/names.cc +++ b/libstdc++-v3/testsuite/17_intro/names.cc @@ -103,6 +103,10 @@ #define tmp ( +#if __cplusplus < 201103L +#define uses_allocator ( +#endif + #if __cplusplus < 201703L // <charconv> defines to_chars_result::ptr and to_chars_result::ec #define ec (