From 0bd9bdb4dbc21dbdef0955db2645df9e97f83c82 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Aug 2016 17:42:31 +0100 Subject: [PATCH] Define __cpp_lib_generic_associative_lookup feature-test macro * include/bits/stl_function.h: Remove commented-out macro. * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): Define feature-test macro. * testsuite/experimental/feat-cxx14.cc: Add tests for more macros. From-SVN: r239084 --- libstdc++-v3/ChangeLog | 5 ++++ libstdc++-v3/include/bits/stl_function.h | 1 - libstdc++-v3/include/bits/stl_tree.h | 4 ++++ .../testsuite/experimental/feat-cxx14.cc | 24 +++++++++++++++---- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d6082300e32..0dad50cf46b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2016-08-03 Jonathan Wakely + * include/bits/stl_function.h: Remove commented-out macro. + * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): + Define feature-test macro. + * testsuite/experimental/feat-cxx14.cc: Add tests for more macros. + * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is true. diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h index eabf9baea53..68f39ff2690 100644 --- a/libstdc++-v3/include/bits/stl_function.h +++ b/libstdc++-v3/include/bits/stl_function.h @@ -225,7 +225,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus > 201103L #define __cpp_lib_transparent_operators 201210 -//#define __cpp_lib_generic_associative_lookup 201304 template<> struct plus diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index 7a9a4a6c277..8697a711a5f 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -73,6 +73,10 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#if __cplusplus > 201103L +# define __cpp_lib_generic_associative_lookup 201304 +#endif + // Red-black tree class, designed for use in implementing STL // associative containers (set, multiset, map, and multimap). The // insertion and deletion algorithms are based on those in Cormen, diff --git a/libstdc++-v3/testsuite/experimental/feat-cxx14.cc b/libstdc++-v3/testsuite/experimental/feat-cxx14.cc index 2cc31ca03be..42b633f6ef6 100644 --- a/libstdc++-v3/testsuite/experimental/feat-cxx14.cc +++ b/libstdc++-v3/testsuite/experimental/feat-cxx14.cc @@ -11,6 +11,8 @@ #include #include #include +#include +#include #ifndef __cpp_lib_integer_sequence # error "__cpp_lib_integer_sequence" @@ -78,11 +80,11 @@ # error "__cpp_lib_complex_udls != 201309" #endif -//#ifndef __cpp_lib_generic_associative_lookup -//# error "__cpp_lib_generic_associative_lookup" -//#elif __cpp_lib_generic_associative_lookup != 201304 -//# error "__cpp_lib_generic_associative_lookup != 201304" -//#endif +#ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup" +#elif __cpp_lib_generic_associative_lookup != 201304 +# error "__cpp_lib_generic_associative_lookup != 201304" +#endif //#ifndef __cpp_lib_null_iterators //# error "__cpp_lib_null_iterators" @@ -119,3 +121,15 @@ #elif __cpp_lib_is_final != 201402 # error "__cpp_lib_is_final != 201402" #endif + +#ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer" +#elif __cpp_lib_is_null_pointer != 201309 +# error "__cpp_lib_is_null_pointer != 201309" +#endif + +#ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator" +#elif __cpp_lib_make_reverse_iterator != 201402 +# error "__cpp_lib_make_reverse_iterator != 201402" +#endif -- 2.30.2