* 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
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.
#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)
{
// 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
};
// _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() { }
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" );
#if __cplusplus >= 201103L
typedef std::true_type propagate_on_container_swap;
+ typedef std::false_type is_always_equal;
#endif
template<typename Tp1>