gcc/libstdc++-v3/include/experimental
Jonathan Wakely b2343559f2 Add array support to std::shared_ptr for C++17
* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.
	* include/bits/shared_ptr.h (shared_ptr(unique_ptr<_Yp, _Del>)): Add
	extension constructor to maintain C++14 behaviour.
	* include/bits/shared_ptr_base.h (__sp_array_delete): Add new struct.
	(__shared_count(_Ptr, false_type), __shared_count(_Ptr, true_type)):
	New constructors.
	(__sp_compatible_with, __sp_is_constructible): Add specializations
	for array support.
	(__sp_is_constructible_arr, __sp_is_constructible_arrN): New helpers.
	(__shared_ptr_access): New base class for observer member functions.
	(__shared_ptr::element_type): Use remove_extent.
	(__shared_ptr::_UniqCompatible): Add __sp_compatible_with check.
	(__shared_ptr(_Yp*)): Use tag dispatching to call new __shared_count
	constructor.
	(__shared_ptr(unique_ptr<_Yp, _Del>)): Add extension constructor.
	(__shared_ptr::operator*, __shared_ptr::operator->): Remove and
	inherit from __shared_ptr_access base class.
	(__shared_ptr::__has_esft_base): Return false for array types.
	(__weak_ptr::element_type): Use remove_extent.
	* include/experimental/bits/shared_ptr.h (__libfund_v1): Remove.
	(__shared_ptr<__libfund_v1<_Tp>>): Remove specializations.
	(__wak_ptr<__libfund_v1<_Tp>>): Likewise.
	(experimental::__sp_compatible_v): Redefine using
	__sp_compatible_with.
	(experimental::__sp_is_constructible_v): Redefine using
	__sp_is_constructible.
	(get_deleter, operator<<): Change argument from __shared_ptr to
	shared_ptr.
	* testsuite/20_util/shared_ptr/cons/array.cc: New test.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Adjust for
	new behaviour.
	* testsuite/20_util/shared_ptr/observers/array.cc: Test observers for
	arrays.
	* testsuite/20_util/shared_ptr/observers/array_neg.cc: New test.

From-SVN: r242369
2016-11-13 22:57:45 +00:00
..
bits Add array support to std::shared_ptr for C++17 2016-11-13 22:57:45 +00:00
algorithm PR77994 Convert std::sample size argument to suitable type 2016-10-17 15:39:23 +01:00
any Cross-port exception-safety and move fixes of std::any to std::experimental::any. 2016-10-24 16:22:11 +03:00
array Avoid #include <functional> in other headers 2016-10-13 17:59:19 +01:00
chrono Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
deque Update copyright years. 2016-01-04 15:30:50 +01:00
filesystem Update copyright years. 2016-01-04 15:30:50 +01:00
forward_list Update copyright years. 2016-01-04 15:30:50 +01:00
functional Use normal mode containers in searchers 2016-10-13 16:50:35 +01:00
iterator Update copyright years. 2016-01-04 15:30:50 +01:00
list Update copyright years. 2016-01-04 15:30:50 +01:00
map Update copyright years. 2016-01-04 15:30:50 +01:00
memory Avoid #include <functional> in other headers 2016-10-13 17:59:19 +01:00
memory_resource Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
numeric LWG 2733, LWG 2759 reject bool in gcd and lcm 2016-10-10 13:17:34 +01:00
optional Cross-port the latest resolution of LWG2756 and some bug-fixes to experimental::optional. 2016-10-24 15:46:44 +03:00
propagate_const Avoid #include <functional> in other headers 2016-10-13 17:59:19 +01:00
random Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
ratio Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
regex Update copyright years. 2016-01-04 15:30:50 +01:00
set Update copyright years. 2016-01-04 15:30:50 +01:00
string Update copyright years. 2016-01-04 15:30:50 +01:00
string_view Remove redundant const qualifliers from string_view 2016-10-11 11:33:24 +01:00
system_error Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
tuple Avoid #include <functional> in other headers 2016-10-13 17:59:19 +01:00
type_traits Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
unordered_map Update copyright years. 2016-01-04 15:30:50 +01:00
unordered_set Update copyright years. 2016-01-04 15:30:50 +01:00
utility Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
vector Update copyright years. 2016-01-04 15:30:50 +01:00