aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include/line-map.h
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-10-11 12:32:29 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-10-11 12:32:29 +0100
commitc7790bdbd97889b39fde3e0249b398a9bf5fb43b (patch)
treeb1c73116191a1c6dd4176e76678744adf18f30cb /libcpp/include/line-map.h
parente7336b8e23f93d73be60850d11b1830753b13e0f (diff)
downloadgcc-c7790bdbd97889b39fde3e0249b398a9bf5fb43b.zip
gcc-c7790bdbd97889b39fde3e0249b398a9bf5fb43b.tar.gz
gcc-c7790bdbd97889b39fde3e0249b398a9bf5fb43b.tar.bz2
Make ext allocators support heterogeneous equality comparison
The Allocator requirements include the ability to compare different specializations of the same allocator class template. This did not work for __gnu_cxx::new_allocator and other extension allocators. This patch replaces the equality operators for those allocators with inline friends that support heterogeneous comparisons. (I'm not changing all ext allocators because some are bit-rotted already). Additionally, the equality operators for comparing two std::allocator objects of the same type are now defined as inline friends. Those overloads don't need to be declared at namespace scope, because they aren't specified in the standard (but they're needed in this implementation to avoid ambiguities caused by the extra overloads defined for the base allocator type). * include/bits/allocator.h (operator==(const allocator<_Tp>&, const allocator<_Tp>)) (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace with inline friends. * include/ext/debug_allocator.h (operator==, operator!=): Replace with inline friend functions that compare to rebound allocators. * include/ext/malloc_allocator.h (operator==, operator!=): Likewise. * include/ext/new_allocator.h (operator==, operator!=): Likewise. * testsuite/ext/debug_allocator/eq.cc: New test. * testsuite/ext/ext_pointer/alloc_eq.cc: New test. * testsuite/ext/malloc_allocator/eq.cc: New test. * testsuite/ext/new_allocator/eq.cc: New test. From-SVN: r265036
Diffstat (limited to 'libcpp/include/line-map.h')
0 files changed, 0 insertions, 0 deletions