r263566 - in /trunk/libstdc++-v3: ChangeLog inc...
redi@gcc.gnu.org
redi@gcc.gnu.org
Wed Aug 15 19:20:00 GMT 2018
Author: redi
Date: Wed Aug 15 19:20:02 2018
New Revision: 263566
URL: https://gcc.gnu.org/viewcvs?rev=263566&root=gcc&view=rev
Log:
Refactor uses-allocator construction
Remove duplicated logic in experimental::pmr::polymorphic_allocator by
calling the __uses_allocator_construct helper.
Fix bugs in std::pmr::polymorphic_allocator with incorrect SFINAE
constraint and incorrect argument order.
* include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
calls to __uses_allocator_construct_impl and __use_alloc.
* include/experimental/memory_resource
(polymorphic_allocator::_M_construct): Remove.
(polymorphic_allocator::construct): Call __uses_allocator_construct.
Qualify calls to __use_alloc.
* include/std/memory_resource (polymorphic_allocator::construct): Fix
type in SFINAE constraint. Use constexpr if instead of tag dispatching
to _S_construct overloads.
(polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
arguments to _S_construct_p.
(polymorphic_allocator::_S_construct): Remove.
(polymorphic_allocator::_S_construct_p): Return allocators by value
not by reference.
* include/std/scoped_allocator (scoped_allocator_adaptor::construct):
Qualify calls to __use_alloc.
* testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
* testsuite/experimental/polymorphic_allocator/1.cc: New test.
* testsuite/experimental/polymorphic_allocator/construct_pair.cc:
New test.
Added:
trunk/libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
trunk/libstdc++-v3/testsuite/experimental/polymorphic_allocator/
trunk/libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
trunk/libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/uses_allocator.h
trunk/libstdc++-v3/include/experimental/memory_resource
trunk/libstdc++-v3/include/std/memory_resource
trunk/libstdc++-v3/include/std/scoped_allocator
More information about the Libstdc++-cvs
mailing list