gcc/libstdc++-v3/include/bits
Jonathan Wakely 7663cae227 Constrain std::shared_ptr assignment and resetting
* include/bits/shared_ptr.h (_Assignable): New alias template.
	(shared_ptr::operator=(const shared_ptr<_Tp1>&))
	(shared_ptr::operator=(shared_ptr<_Tp1>&&))
	(shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	* include/bits/shared_ptr_base.h (_Assignable): New alias template.
	(__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
	(__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
	(__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	(__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
	(__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
	_Convertible.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
	match on any line.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
	expected errors. Remove unnecessary code.
	* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.

From-SVN: r239898
2016-08-31 17:57:20 +01:00
..
algorithmfwd.h Remove trailing whitespace in C++ headers 2016-08-24 09:03:01 +01:00
alloc_traits.h allocator_traits<allocator<T>> partial specialization 2016-01-11 16:47:58 +00:00
allocated_ptr.h Make __allocated_ptr::_S_raw_ptr static 2016-07-13 18:22:47 +01:00
allocator.h Define C++17 feature-test macros 2016-08-03 19:11:10 +01:00
atomic_base.h Update copyright years. 2016-01-04 15:30:50 +01:00
atomic_futex.h Update copyright years. 2016-01-04 15:30:50 +01:00
basic_ios.h Update copyright years. 2016-01-04 15:30:50 +01:00
basic_ios.tcc libstdc++/70766 use std::addressof instead of operator& 2016-04-28 13:33:07 +01:00
basic_string.h Add new std::basic_string constructor (LWG 2583) 2016-08-26 11:41:37 +01:00
basic_string.tcc Add new std::basic_string constructor (LWG 2583) 2016-08-26 11:41:37 +01:00
boost_concept_check.h Update copyright years. 2016-01-04 15:30:50 +01:00
c++0x_warning.h Update copyright years. 2016-01-04 15:30:50 +01:00
c++14_warning.h c++14_warning.h: Do not refer C++14 as experimental. 2016-04-19 16:29:05 +00:00
c++17_warning.h Add a new header for diagnosing the use of C++17 facilities in pre-C++17 modes. 2016-07-06 21:07:57 +03:00
c++config Add constexpr to <iterator> and <array> for C++17 2016-08-23 11:13:12 +01:00
char_traits.h Update copyright years. 2016-01-04 15:30:50 +01:00
codecvt.h Update copyright years. 2016-01-04 15:30:50 +01:00
concept_check.h Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. 2016-03-23 00:41:52 +00:00
cpp_type_traits.h libstdc++/69406 Fix test to check for supported headers 2016-01-21 13:33:27 +00:00
deque.tcc 2016-06-15 François Dumont <fdumont@gcc.gnu.org> 2016-06-15 20:09:56 +00:00
enable_special_members.h Implement <variant> 2016-08-18 20:31:26 +00:00
forward_list.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
forward_list.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
fstream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
functexcept.h Update copyright years. 2016-01-04 15:30:50 +01:00
functional_hash.h Update copyright years. 2016-01-04 15:30:50 +01:00
gslice_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
gslice.h Update copyright years. 2016-01-04 15:30:50 +01:00
hashtable_policy.h Remove _GLIBCXX14_USE_CONSTEXPR 2016-05-25 10:36:28 +01:00
hashtable.h re PR libstdc++/71640 (include/c++/7.0.0/bits/hashtable.h:293:7: error: too many template parameters in template redeclaration) 2016-06-27 20:41:59 +00:00
indirect_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
invoke.h Add std::apply for C++17 2016-08-06 01:06:02 +01:00
ios_base.h Update copyright years. 2016-01-04 15:30:50 +01:00
istream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
list.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_classes.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_classes.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_conv.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets_nonio.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets_nonio.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets.h Add attribute((unused)) in libstdc++ headers 2016-04-18 16:44:12 +01:00
locale_facets.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
localefwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
mask_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
memoryfwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
move.h Replace references to C++0x with C++11 in comments 2016-07-15 21:23:08 +01:00
ostream_insert.h Update copyright years. 2016-01-04 15:30:50 +01:00
ostream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
parse_numbers.h Update copyright years. 2016-01-04 15:30:50 +01:00
postypes.h Replace references to C++0x with C++11 in comments 2016-07-15 21:23:08 +01:00
predefined_ops.h Update copyright years. 2016-01-04 15:30:50 +01:00
ptr_traits.h Update copyright years. 2016-01-04 15:30:50 +01:00
quoted_string.h Update copyright years. 2016-01-04 15:30:50 +01:00
random.h PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
random.tcc PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
range_access.h Add constexpr to <iterator> and <array> for C++17 2016-08-23 11:13:12 +01:00
regex_automaton.h Add attribute((unused)) in libstdc++ headers 2016-04-18 16:44:12 +01:00
regex_automaton.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
regex_compiler.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_compiler.tcc re PR libstdc++/77356 (regex error for a ECMAScript syntax string) 2016-08-27 02:03:23 +00:00
regex_constants.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_error.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_executor.h Split _M_dfs() into smaller functions. 2016-08-22 19:50:15 +00:00
regex_executor.tcc Split _M_dfs() into smaller functions. 2016-08-22 19:50:15 +00:00
regex_scanner.h re PR libstdc++/77356 (regex error for a ECMAScript syntax string) 2016-08-27 02:03:23 +00:00
regex_scanner.tcc re PR libstdc++/77356 (regex error for a ECMAScript syntax string) 2016-08-27 02:03:23 +00:00
regex.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
shared_ptr_atomic.h Update copyright years. 2016-01-04 15:30:50 +01:00
shared_ptr_base.h Constrain std::shared_ptr assignment and resetting 2016-08-31 17:57:20 +01:00
shared_ptr.h Constrain std::shared_ptr assignment and resetting 2016-08-31 17:57:20 +01:00
slice_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
specfun.h Enable Mathematical Special Functions for C++17 2016-08-03 16:54:13 +01:00
sstream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
std_mutex.h * include/bits/std_mutex.h: Fix Doxygen @file name. 2016-01-15 12:37:15 +00:00
stl_algo.h Remove redundant std::move in std::for_each 2016-07-15 20:51:33 +01:00
stl_algobase.h libstdc++/71545 fix debug checks in binary search algorithms 2016-06-17 19:28:34 +01:00
stl_bvector.h PR 72847 Prevent double-free in std::vector<bool> 2016-08-16 12:33:16 +01:00
stl_construct.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_deque.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_function.h Define std::owner_less<void> specialization (P0074R0) 2016-08-03 19:11:18 +01:00
stl_heap.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_iterator_base_funcs.h Add constexpr to <iterator> and <array> for C++17 2016-08-23 11:13:12 +01:00
stl_iterator_base_types.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_iterator.h Implement resolution of LWG DR 685 precisely 2016-08-23 11:13:26 +01:00
stl_list.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_map.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_multimap.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_multiset.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_numeric.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_pair.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_queue.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_raw_storage_iter.h libstdc++/51960 move-construction for raw_storage_iterator 2016-08-26 14:11:29 +01:00
stl_relops.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_set.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stl_stack.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_tempbuf.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_tree.h Move comparison object in map/set move assignment 2016-08-31 17:57:14 +01:00
stl_uninitialized.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_vector.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
stream_iterator.h libstdc++/70766 use std::addressof instead of operator& 2016-04-28 13:33:07 +01:00
streambuf_iterator.h Update copyright years. 2016-01-04 15:30:50 +01:00
streambuf.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
string_view.tcc Implement std::string_view and P0254r2, 2016-07-28 18:15:26 +03:00
stringfwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
uniform_int_dist.h PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
unique_ptr.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
unordered_map.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
unordered_set.h Improve doxygen comments for allocators in containers 2016-07-14 11:02:10 +01:00
uses_allocator.h Implement <variant> 2016-08-18 20:31:26 +00:00
valarray_after.h Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_array.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_before.h Constrain std::valarray functions and operators 2016-01-22 21:15:41 +00:00
vector.tcc PR 72847 Prevent double-free in std::vector<bool> 2016-08-16 12:33:16 +01:00