]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Diagnose visitors with different return types [PR95904]
authorVille Voutilainen <ville.voutilainen@gmail.com>
Fri, 9 Oct 2020 17:47:01 +0000 (20:47 +0300)
committerVille Voutilainen <ville.voutilainen@gmail.com>
Fri, 9 Oct 2020 17:48:08 +0000 (20:48 +0300)
commit3427e31331677ca826c5588c87924214f7e5c54b
tree359b6e8b43c4860fa021c3035edc8bd86235775e
parent3ee44d4c518d61c6bbf75fcf280edc6ce5326ce0
libstdc++: Diagnose visitors with different return types [PR95904]

libstdc++-v3/ChangeLog:

PR libstdc++/95904
* include/std/variant (__deduce_visit_result): Add a nested ::type.
(__gen_vtable_impl</*base case*/>::_S_apply):
Check the visitor return type.
(__same_types): New.
(__check_visitor_result): Likewise.
(__check_visitor_results): Likewise.
(visit(_Visitor&&, _Variants&&...)): Use __check_visitor_results
in case we're visiting just one variant.
* testsuite/20_util/variant/visit_neg.cc: Adjust.
libstdc++-v3/include/std/variant
libstdc++-v3/testsuite/20_util/variant/visit_neg.cc