gcc/libstdc++-v3/include
Jonathan Wakely a2e0054e1d Prepare shared_ptr for array support
* include/backward/auto_ptr.h (__shared_ptr(auto_ptr&&))
	(shared_ptr(auto_ptr&&)): Adjust template parameter lists.
	* include/bits/shared_ptr.h (__sp_compatible_with)
	(__sp_is_constructible): New helper traits for shared_ptr.
	(shared_ptr::_Convertible): Replace with _Constructible.
	(shared_ptr::_Constructible, shared_ptr::_Assignable): Forward checks
	to base class.
	(shared_ptr::shared_ptr, shared_ptr::operator=): Constrain template
	with _Constructible and _Assignable.
	(shared_ptr::shared_ptr(shared_ptr<_Tp1>, _Tp*)): Use element_type
	instead of _Tp.
	(operator<): Likewise.
	(operator>): Define in terms of operator<.
	(static_pointer_cast, const_pointer_cast, dynamic_pointer_cast): Use
	element_type instead of _Tp.
	(reinterpret_pointer_cast): Define for C++17.
	(weak_ptr::_Convertible): Replace with _Constructible.
	(weak_ptr::_Constructible, weak_ptr::_Assignable): Forward checks
	to base class.
	(weak_ptr::weak_ptr, weak_ptr::operator=): Constrain templates
	with _Constructible and _Assignable.
	* include/bits/shared_ptr_base.h (__shared_ptr::_Convertible): Replace
	with _Compatible.
	(__shared_ptr::_SafeConv): New constraint for incoming raw pointers.
	(__shared_ptr::_Compatible): New constraint for converting from
	other types of shared_ptr and weak_ptr.
	(__shared_ptr::_Assignable): Define in terms of _Compatible.
	(__shared_ptr::_UniqCompatible, __shared_ptr::_UniqAssignable): New
	constraints for converting from unique_ptr.
	(__shared_ptr::__shared_ptr, __shared_ptr::operator=): Constrain
	template with _SaveConf, _Compatible and _Assignable. Remove
	__glibcxx_function_requires concept checks. Add static assertion for
	deleter expression being well-formed.
	(__shared_ptr::__shared_ptr(__shared_ptr<_Tp1>, _Tp*))
	(__shared_ptr::operator*, __shared_ptr::operator->)
	(__shared_ptr::get, __shared_ptr::_M_ptr): Use element_type instead
	of _Tp.
	(operator<): Likewise.
	(operator>): Define in terms of operator<.
	(static_pointer_cast, const_pointer_cast, dynamic_pointer_cast): Use
	element_type instead of _Tp.
	(reinterpret_pointer_cast): Define for C++17.
	(weak_ptr::_Convertible): Replace with _Compatible.
	(weak_ptr::_Compatible, weak_ptr::_Assignable): New constraints for
	conversions from other types of weak_ptr and shared_ptr.
	(__weak_ptr::__weak_ptr, __weak_ptr::operator=): Constrain templates
	with _Constructible and _Assignable.
	(__weak_ptr::_M_ptr): Use element_type instead of _Tp.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Adjust
	dg-error pattern.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Test conversions.
	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: New test.

From-SVN: r241373
2016-10-20 13:07:45 +01:00
..
backward Prepare shared_ptr for array support 2016-10-20 13:07:45 +01:00
bits Prepare shared_ptr for array support 2016-10-20 13:07:45 +01:00
c Update copyright years. 2016-01-04 15:30:50 +01:00
c_compatibility Don't define guard macros when doing #include_next in math.h and stdlib.h 2016-02-01 11:13:40 +00:00
c_global libstdc++/77795 Only declare ::gets for C++98 and C++11 2016-09-30 19:28:53 +01:00
c_std libstdc++/77795 Only declare ::gets for C++98 and C++11 2016-09-30 19:28:53 +01:00
debug Fix copy&paste error in __gnu_debug::vector 2016-10-19 19:33:47 +01:00
decimal Update copyright years. 2016-01-04 15:30:50 +01:00
experimental Make std::enable_shared_from_this cope with ambiguity 2016-10-19 21:13:14 +01:00
ext Tweak whitespace in std::allocator files 2016-10-20 12:37:19 +01:00
parallel algo.h: Generalize usage of std::__iterator_category. 2016-09-25 15:23:45 +00:00
precompiled Implement TR29124 C++ special Math Functions. 2016-01-14 18:12:43 +00:00
profile Add C++17 constexpr to debug and profile mode arrays 2016-08-23 16:54:57 +01:00
std Do the operator= SFINAE in the return type for optional, 2016-10-20 14:54:52 +03:00
tr1 Enable Mathematical Special Functions for C++17 2016-08-03 16:54:13 +01:00
tr2 Update copyright years. 2016-01-04 15:30:50 +01:00
Makefile.am Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00
Makefile.in Fix libstdc++ versioned namespace build 2016-10-03 15:35:28 +01:00