r269075 - in /trunk/libstdc++-v3: ChangeLog inc...

redi@gcc.gnu.org redi@gcc.gnu.org
Thu Feb 21 20:47:00 GMT 2019


Author: redi
Date: Thu Feb 21 20:47:43 2019
New Revision: 269075

URL: https://gcc.gnu.org/viewcvs?rev=269075&root=gcc&view=rev
Log:
PR libstdc++/89416 fix __is_move_insertable trait

The common base class for __is_move_insertable and __is_copy_insertable
instantiates both the copy and move tests, when only one is needed. The
unneeded one might cause errors outside the immediate context.

The solution used in this patch is to replace them with alias templates,
which will only be instantiated as needed.

	PR libstdc++/89416
	* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
	class template with class. Replace move and copy member types with
	member alias templates, so they are only instantiated when needed.
	(__is_copy_insertable, __is_move_insertable): Adjust base class.
	* testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
	test for C++11/14/17 as well.
	* testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
	test.

Added:
    trunk/libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/alloc_traits.h
    trunk/libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc



More information about the Libstdc++-cvs mailing list