[PATCH] Define __cpp_lib_generic_associative_lookup feature-test macro
Jonathan Wakely
jwakely@redhat.com
Wed Aug 3 16:42:00 GMT 2016
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.
-------------- next part --------------
commit 236db9620d23e3d5b3b247e30b13e633affbc396
Author: Jonathan Wakely <jwakely@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
More information about the Libstdc++
mailing list