diff options
author | Ville Voutilainen <ville.voutilainen@gmail.com> | 2019-04-08 22:45:48 +0300 |
---|---|---|
committer | Ville Voutilainen <ville@gcc.gnu.org> | 2019-04-08 22:45:48 +0300 |
commit | 3d01c7c2f20ffc062d01a525b8e567931c2b089c (patch) | |
tree | bfb9c683a02f50f55e7e54b9010f95a168dd8b3e /gcc | |
parent | 15f4769a12dd1640fcf6608c34eea46d8da86fbb (diff) | |
download | gcc-3d01c7c2f20ffc062d01a525b8e567931c2b089c.zip gcc-3d01c7c2f20ffc062d01a525b8e567931c2b089c.tar.gz gcc-3d01c7c2f20ffc062d01a525b8e567931c2b089c.tar.bz2 |
Fix visit<R> for variant.
* include/std/variant (__do_visit): Add a template parameter
for enforcing same return types for visit.
(__gen_vtable_impl): Likewise.
(_S_apply_single_alt): Adjust.
(__visit_invoke_impl): New. Handle casting to void.
(__do_visit_invoke): New. Enforces same return types.
(__do_visit_invoke_r): New. Converts return types.
(__visit_invoke): Adjust.
(__gen_vtable): Add a template parameter for enforcing
same return types for visit.
* testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
different return types.
* testsuite/20_util/variant/visit_neg.cc: New. Ensures that
visitors with different return types don't accidentally
compile with regular visitation.
From-SVN: r270216
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions