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
This commit is contained in:
Jonathan Wakely 2016-10-10 13:17:45 +01:00 committed by Jonathan Wakely
parent f2e79496bf
commit 46942c8101
4 changed files with 15 additions and 1 deletions

View File

@ -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.

View File

@ -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() { }

View File

@ -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" );

View File

@ -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>