This featue is supported, so we should define the macro.
I've also added tests for a couple of other macros, which we already define. * 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. Tested powerpc64-linux, committed to trunk.
commit 236db9620d23e3d5b3b247e30b13e633affbc396 Author: Jonathan Wakely <jwak...@redhat.com> Date: Wed Aug 3 16:57:41 2016 +0100 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. diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h index eabf9ba..68f39ff 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<void> diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index 7a9a4a6..8697a71 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 2cc31ca..42b633f6 100644 --- a/libstdc++-v3/testsuite/experimental/feat-cxx14.cc +++ b/libstdc++-v3/testsuite/experimental/feat-cxx14.cc @@ -11,6 +11,8 @@ #include <complex> #include <iomanip> #include <shared_mutex> +#include <map> +#include <set> #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