gcc/libstdc++-v3/include
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
..
backward Update copyright years. 2015-01-05 13:33:28 +01:00
bits Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228... 2015-08-08 14:07:34 +03:00
c Update copyright years. 2015-01-05 13:33:28 +01:00
c_compatibility Update copyright years. 2015-01-05 13:33:28 +01:00
c_global re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10) 2015-02-01 15:11:08 +00:00
c_std re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10) 2015-02-01 15:11:08 +00:00
debug stl_algobase.h (__miter_base): Move... 2015-07-16 19:17:26 +00:00
decimal Update copyright years. 2015-01-05 13:33:28 +01:00
experimental any (any::operator=(const any&)): Check for self-assignment. 2015-07-30 11:00:39 +01:00
ext functional_hash.h: Add specializations for __intN types. 2015-07-23 13:57:34 -04:00
parallel Update copyright years. 2015-01-05 13:33:28 +01:00
precompiled * include/precompiled/stdc++.h: Include <codecvt> and <shared_mutex>. 2015-06-12 13:27:06 +01:00
profile c++config (_GLIBCXX_NOEXCEPT_IF): Define. 2015-07-13 18:15:48 +01:00
std regex_automaton.h (_State_base, _State<>): Remove _TraitsT dependency from _State<>... 2015-07-30 10:35:45 +00:00
tr1 Use atomics in guard.cc. 2015-06-12 09:49:41 +00:00
tr2 Update copyright years. 2015-01-05 13:33:28 +01:00
Makefile.am Implement std::experimental::fundamentals_v2::propagate_const. 2015-07-03 15:08:37 +01:00
Makefile.in libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS 2015-07-24 07:05:19 +00:00