aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-10-10 13:17:45 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-10-10 13:17:45 +0100
commit46942c810112eb655f1dfd223055c60208403ad0 (patch)
treeb6f128fc7e09949b6285f9463987eadd7cf3e746 /libstdc++-v3
parentf2e79496bf9107eae1130e0d74c80b02a5b86cab (diff)
downloadgcc-46942c810112eb655f1dfd223055c60208403ad0.zip
gcc-46942c810112eb655f1dfd223055c60208403ad0.tar.gz
gcc-46942c810112eb655f1dfd223055c60208403ad0.tar.bz2
Define std::allocator<T>::is_always_equal
* include/bits/allocator.h (allocator<T>::is_always_equal): Define. * testsuite/20_util/allocator/requirements/typedefs.cc: Test for is_always_equal. * testsuite/util/testsuite_allocator.h (uneq_allocator::is_always_equal): Define as false_type. From-SVN: r240920
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/allocator.h6
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_allocator.h1
4 files changed, 15 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b6b10e6..d1e2bc3 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,11 @@
2016-10-10 Jonathan Wakely <jwakely@redhat.com>
+ * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
+ * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
+ is_always_equal.
+ * testsuite/util/testsuite_allocator.h
+ (uneq_allocator::is_always_equal): Define as false_type.
+
* include/experimental/numeric (gcd, lcm): Make bool arguments
ill-formed.
* include/std/numeric (gcd, lcm): Likewise.
diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index 984d800..8e78165 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -50,6 +50,9 @@
#endif
#define __cpp_lib_incomplete_container_elements 201505
+#if __cplusplus >= 201103L
+# define __cpp_lib_allocator_is_always_equal 201411
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -80,7 +83,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// 2103. std::allocator propagate_on_container_move_assignment
typedef true_type propagate_on_container_move_assignment;
-#define __cpp_lib_allocator_is_always_equal 201411
typedef true_type is_always_equal;
#endif
};
@@ -113,6 +115,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 2103. std::allocator propagate_on_container_move_assignment
typedef true_type propagate_on_container_move_assignment;
+
+ typedef true_type is_always_equal;
#endif
allocator() throw() { }
diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
index 028daa9..1b3f14f 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
@@ -48,3 +48,6 @@ static_assert( is_same<allocator<int>::rebind<char>::other,
static_assert( is_same<allocator<int>::propagate_on_container_move_assignment,
std::true_type>::value,
"propagate_on_container_move_assignment" );
+
+static_assert( is_same<allocator<int>::is_always_equal, std::true_type>::value,
+ "is_always_equal" );
diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 8537a83..dd7e22d 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -297,6 +297,7 @@ namespace __gnu_test
#if __cplusplus >= 201103L
typedef std::true_type propagate_on_container_swap;
+ typedef std::false_type is_always_equal;
#endif
template<typename Tp1>