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-07-23 08:41:35 +00:00
2017-06-07 13:35:08 +01:00
2017-09-13 08:27:40 +01:00
2017-11-21 20:47:09 +00:00
2017-02-11 21:08:06 +00:00
2017-01-01 13:07:43 +01:00
2017-07-25 21:36:06 +01:00
2017-01-01 13:07:43 +01:00
2017-12-01 16:10:25 +00:00
2017-02-01 11:41:48 +00:00
2017-12-04 23:07:39 +00:00
2017-01-01 13:07:43 +01:00
2017-09-20 17:34:42 +01:00
2017-06-12 22:22:39 +00:00
2017-12-04 23:07:39 +00:00
2017-01-01 13:07:43 +01:00
2017-01-01 13:07:43 +01:00
2017-07-23 08:41:35 +00:00
2017-01-01 13:07:43 +01:00
2017-11-21 20:47:09 +00:00
2017-07-23 08:41:35 +00:00
2017-10-27 18:49:29 +01:00
2017-12-05 15:23:26 +00:00
2017-12-05 15:23:26 +00:00
2017-11-23 22:11:21 +00:00
2017-07-19 16:46:04 +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-11-21 20:47:09 +00:00
2017-11-21 20:47:09 +00:00
2017-01-01 13:07:43 +01:00
2017-03-10 15:29:38 +00:00
2017-07-25 18:47:52 +01:00
2017-07-25 21:36:06 +01:00
2017-07-23 08:41:35 +00:00
2017-01-16 11:41:41 +00:00
2017-01-01 13:07:43 +01:00
2017-11-14 18:00:53 +00:00
2017-11-30 17:29:08 +00:00
2017-12-04 23:07:39 +00:00
2017-07-19 16:59:00 +00:00
2017-05-23 11:16:08 +01:00
2017-01-01 13:07:43 +01:00
2017-03-02 03:43:49 +00:00
2017-01-01 13:07:43 +01:00
2017-07-23 08:41:35 +00:00
2017-12-01 15:10:20 +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-02-01 12:57:35 +00:00
2017-11-30 15:07:21 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-11-23 22:11:21 +00:00
2017-12-14 17:18:22 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-12-04 23:08:22 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-12-01 15:10:09 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-07-23 08:41:35 +00:00
2017-01-01 13:07:43 +01:00
2017-09-13 08:27:40 +01:00
2017-06-16 16:20:14 +01:00
2017-03-02 03:43:49 +00:00
2017-11-18 19:53:25 +00:00
2017-07-10 18:59:02 +01:00
2017-01-01 13:07:43 +01:00
2017-12-14 17:18:22 +00:00
2017-03-23 19:40:07 +00:00
2017-10-27 00:50:40 +01:00
2017-10-27 00:50:40 +01:00
2017-10-16 05:44:03 +00:00
2017-04-28 13:56:53 +01:00
2017-11-21 20:47:09 +00:00
2017-11-21 20:47:09 +00:00
2017-03-16 14:32:07 +00:00
2017-11-20 16:21:42 +02:00
2017-08-21 16:14:27 +01:00
2017-10-26 19:42:31 +03:00
2017-11-21 20:47:09 +00:00
2017-11-21 20:47:09 +00:00
2017-11-21 20:47:09 +00:00
2017-11-21 20:47:09 +00:00
2017-01-01 13:07:43 +01:00
2017-04-03 19:30:58 +03:00
2017-03-20 20:51:40 +00:00
2017-01-01 13:07:43 +01:00
2017-07-23 08:41:35 +00:00
2017-11-21 20:47:09 +00:00
2017-07-31 13:44:16 +00:00
2017-01-01 13:07:43 +01:00
2017-11-22 11:06:15 +00:00
2017-10-27 00:50:40 +01:00
2017-11-21 20:47:09 +00:00
2017-01-01 13:07:43 +01:00
2017-11-20 22:30:28 +00:00
2017-01-01 13:07:43 +01:00
2017-10-24 14:18:52 +01:00
2017-01-01 13:07:43 +01:00
2017-12-01 15:10:09 +00:00
2017-04-21 14:08:51 +01:00
2017-11-27 16:43:39 +00:00
2017-11-21 20:47:09 +00:00
2017-07-06 12:54:10 +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-16 23:51:20 +00:00