Jonathan Wakely 00677c4877 PR libstdc++/83427 detect weak result type from noexcept functions
PR libstdc++/83427
	* include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
	from <bits/std_function.h>.
	(_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
	(_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
	for function types. Remove partial specializations for member
	functions.
	(_Weak_result_type_impl): Remove unused partial specializations for
	non-referenceable function types and for references to functions.
	(_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
	helpers to handle member functions via _Mem_fn_traits.
	(_Weak_result_type, reference_wrapper): Derive from new helpers.
	* include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
	to <bits/refwrap.h>.
	* include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
	(_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
	* testsuite/20_util/bind/83427.cc: New test.
	* testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
	check for weak result types.
	* testsuite/20_util/reference_wrapper/83427.cc: New test.

From-SVN: r255651
2017-12-14 17:18:22 +00:00
..
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-09-20 17:34:42 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-11-14 18:00:53 +00:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-11-20 16:21:42 +02:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00