gcc/libstdc++-v3
Ville Voutilainen f334456903 Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228...
2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
	and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
	templated assignment
	* include/bits/unique_ptr.h
	(__remove_cv, __is_derived_Tp): Remove.
	(default_delete::default_delete(const default_delete<_Up[]>)):
	Constrain with array convertibility.
	(default_delete::operator(_Up*)): Turn into a template,
	constrain with array convertibility.
	(__safe_conversion_up): New, single object version.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
	convertibility.
	(unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint.
	(__safe_conversion_up): Array version, renamed from __safe_conversion,
	updated to implement N4089.
	(__safe_conversion_raw): New.
	(unique_ptr(_Up)): Turn into a template, constrain with array
	convertibility.
	(unique_ptr(_Up,
        typename conditional<is_reference<deleter_type>::value,
        deleter_type, const deleter_type&>::type)): Likewise.
	(unique_ptr(_Up, typename
 	remove_reference<deleter_type>::type&&)): Likewise.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
	(operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint (array version).
	(reset(_Up)): Turn into a template, constrain with array
	convertibility.
	(reset(nullptr_t)): New.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/dr2228.cc: New.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.

From-SVN: r226733
2015-08-08 14:07:34 +03:00
..
config os_defines.h (_GLIBCXX_USE_C99_CHECK, [...]): Define. 2015-07-13 15:53:08 +01:00
doc libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
include Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228... 2015-08-08 14:07:34 +03:00
libsupc++ libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
po libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
python libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
scripts Implement N4100 File System TS 2015-04-30 20:11:52 +01:00
src libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
testsuite Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228... 2015-08-08 14:07:34 +03:00
ChangeLog Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228... 2015-08-08 14:07:34 +03:00
ChangeLog-1998 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-1999 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2000 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2001 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2002 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2003 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2004 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2005 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2006 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2007 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2008 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2009 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2010 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2011 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2012 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2013 * ChangeLog-2013: Correct an old entry. 2014-05-26 23:49:19 +02:00
ChangeLog-2014 Rotate libstdc++-v3/ChangeLog 2015-01-02 16:50:36 +00:00
Makefile.am Makefile.am (SUBDIRS): Move python to hosted_source. 2015-04-28 20:42:51 +01:00
Makefile.in libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
README
acinclude.m4 acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi 2015-07-02 22:52:38 +01:00
aclocal.m4 libstdc++: Bump to automake 1.11.6 2015-05-13 10:51:03 +00:00
config.h.in re PR libstdc++/66011 (call to '__open_missing_mode' declared with attribute error) 2015-05-14 14:23:14 +01:00
configure acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi 2015-07-02 22:52:38 +01:00
configure.ac re PR libstdc++/66018 (opendir configure test not working when GCC_NO_EXECUTABLES) 2015-05-14 12:47:19 +01:00
configure.host Use atomics in guard.cc / remove special casing in targets. 2015-06-12 09:53:24 +00:00
crossconfig.m4 Remove obsolete Solaris 9 support 2014-04-22 12:30:59 +00:00
fragment.am libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00
linkage.m4 linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New. 2013-02-11 12:50:13 -05:00

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.