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

Reply via email to