gcc/libstdc++-v3
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
..
config gnu-versioned-namespace.ver: Export C++17 new of over-aligned types symbols. 2016-11-07 21:12:36 +00:00
doc Add array support to std::shared_ptr for C++17 2016-11-13 22:57:45 +00:00
include Add array support to std::shared_ptr for C++17 2016-11-13 22:57:45 +00:00
libsupc++ Implement P0012R1, Make exception specifications part of the type system. 2016-11-07 18:09:29 -05:00
po Disable .gnu.attributes tags in compatibility-ldbl.o 2016-09-29 07:33:17 +09:30
python PR77990 refactor unique_ptr to encapsulate tuple 2016-10-19 10:34:57 +01:00
scripts testsuite_hooks.h: Rewrite VERIFY in terms of __builtin_printf and __builtin_abort. 2016-10-12 16:13:06 +00:00
src * src/filesystem/ops.cc (is_empty): Fix typo in exception message. 2016-11-12 20:28:55 +00:00
testsuite Add array support to std::shared_ptr for C++17 2016-11-13 22:57:45 +00:00
acinclude.m4 Add missing header in Filesystem TS configure tests 2016-10-26 12:29:31 +01:00
aclocal.m4 libstdc++: Bump to automake 1.11.6 2015-05-13 10:51:03 +00:00
ChangeLog Add array support to std::shared_ptr for C++17 2016-11-13 22:57:45 +00:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015 Update copyright years. 2016-01-04 15:30:50 +01:00
config.h.in libstdc++/77795 Only declare ::gets for C++98 and C++11 2016-09-30 19:28:53 +01:00
configure Add missing header in Filesystem TS configure tests 2016-10-26 12:29:31 +01:00
configure.ac Disable .gnu.attributes tags in compatibility-ldbl.o 2016-09-29 07:33:17 +09:30
configure.host [RTEMS] Always use atomic builtins for libstdc++ 2016-09-23 06:58:00 +00:00
crossconfig.m4 remove knetbsd support 2016-06-21 21:57:30 +00:00
fragment.am libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
linkage.m4
Makefile.am Update copyright years. 2016-01-04 15:30:50 +01:00
Makefile.in Disable .gnu.attributes tags in compatibility-ldbl.o 2016-09-29 07:33:17 +09:30
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.