gcc/libstdc++-v3/include/bits
Jonathan Wakely d331c5f10d 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.

From-SVN: r269075
2019-02-21 20:47:43 +00:00
..
algorithmfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
alloc_traits.h PR libstdc++/89416 fix __is_move_insertable trait 2019-02-21 20:47:43 +00:00
allocated_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
allocator.h Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_base.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
atomic_futex.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
basic_string.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
basic_string.tcc Export explicit instantiations for C++17 members of std::string 2019-01-04 23:23:22 +00:00
boost_concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++0x_warning.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++config P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
char_traits.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
codecvt.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
cpp_type_traits.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
deque.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
enable_special_members.h Update copyright years. 2019-01-01 13:31:55 +01:00
erase_if.h Fix more missing or incorrect feature test macros 2019-01-15 12:58:19 +00:00
forward_list.h Fix after P0600. 2019-01-21 11:47:30 +00:00
forward_list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
fs_dir.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_fwd.h Define new filesystem::__file_clock type 2019-01-05 20:03:22 +00:00
fs_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_path.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
fstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
functexcept.h Update copyright years. 2019-01-01 13:31:55 +01:00
functional_hash.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
gslice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
gslice.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable_policy.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable.h Fix after P0600. 2019-01-21 11:47:30 +00:00
indirect_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
invoke.h Update copyright years. 2019-01-01 13:31:55 +01:00
ios_base.h Update copyright years. 2019-01-01 13:31:55 +01:00
istream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_conv.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
locale_facets_nonio.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets_nonio.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
locale_facets.tcc PR libstdc++/68737 Do not use vsnprintf on HPUX 2019-01-28 23:58:57 +00:00
localefwd.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
mask_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
memoryfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
move.h Update copyright years. 2019-01-01 13:31:55 +01:00
node_handle.h Update copyright years. 2019-01-01 13:31:55 +01:00
ostream_insert.h Update copyright years. 2019-01-01 13:31:55 +01:00
ostream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
parse_numbers.h Update copyright years. 2019-01-01 13:31:55 +01:00
postypes.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
predefined_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
ptr_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
quoted_string.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
range_access.h Update copyright years. 2019-01-01 13:31:55 +01:00
refwrap.h P0357R3 reference_wrapper for incomplete types 2019-01-11 23:41:11 +00:00
regex_automaton.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_automaton.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_constants.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_error.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex.h Fix after P0600. 2019-01-21 11:47:30 +00:00
regex.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_atomic.h Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_base.h PR libstdc++/88782 avoid ODR problems in std::make_shared 2019-01-18 21:28:48 +00:00
shared_ptr.h PR libstdc++/88782 avoid ODR problems in std::make_shared 2019-01-18 21:28:48 +00:00
slice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
specfun.h Update copyright years. 2019-01-01 13:31:55 +01:00
sstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
std_abs.h Document LWG 2735 status and add test 2019-02-14 09:07:09 +00:00
std_function.h Update copyright years. 2019-01-01 13:31:55 +01:00
std_mutex.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algo.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algobase.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_bvector.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_construct.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_deque.h Rename __is_trivially_relocatable to __is_bitwise_relocatable. 2019-02-05 09:33:36 +00:00
stl_function.h re PR tree-optimization/88775 (Optimize std::string assignment) 2019-01-10 11:56:56 +01:00
stl_heap.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_funcs.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_types.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_list.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_map.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_multimap.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_multiset.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_numeric.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_pair.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_queue.h LWG 2537 fix priority_queue constructors to establish invariant 2019-02-14 14:10:19 +00:00
stl_raw_storage_iter.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_relops.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_set.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_stack.h Enforce LWG DR 2566 requirement for container adaptors 2019-02-14 14:10:12 +00:00
stl_tempbuf.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_tree.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_uninitialized.h PR libstdc++/89090 avoid C++17 features in C++11/C++14 code 2019-02-05 14:44:56 +00:00
stl_vector.h PR libstdc++/89130 restore support for non-MoveConstructible types 2019-02-05 14:45:00 +00:00
stream_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
string_view.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
stringfwd.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
uniform_int_dist.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_lock.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_ptr.h PR libstdc++/88738 treat shared_ptr and unique_ptr more like plain old pointers 2019-01-16 08:01:22 +00:00
unordered_map.h Fix after P0600. 2019-01-21 11:47:30 +00:00
unordered_set.h Fix after P0600. 2019-01-21 11:47:30 +00:00
uses_allocator.h DR 2586 fix value category in uses-allocator checks 2019-02-14 15:08:33 +00:00
valarray_after.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_before.h Update copyright years. 2019-01-01 13:31:55 +01:00
vector.tcc PR libstdc++/89130 restore support for non-MoveConstructible types 2019-02-05 14:45:00 +00:00