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