From 4a5f3dc498f7e159a479f81319e8a27bcbed9d7e Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 18 Oct 2022 02:33:29 +0300 Subject: [PATCH] Add variant::emplace tests to fish out -Wmaybe-uninitialized warnings --- test/variant_emplace_index.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/variant_emplace_index.cpp b/test/variant_emplace_index.cpp index 340cbcb..6aececa 100644 --- a/test/variant_emplace_index.cpp +++ b/test/variant_emplace_index.cpp @@ -288,5 +288,39 @@ int main() BOOST_TEST_EQ( Z1::instances, 0 ); BOOST_TEST_EQ( Z2::instances, 0 ); + { + variant v; + BOOST_TEST_EQ( v.index(), 0 ); + + v.emplace<0>(); + BOOST_TEST_EQ( v.index(), 0 ); + + v.emplace<1>(); + BOOST_TEST_EQ( v.index(), 1 ); + + v.emplace<1>(); + BOOST_TEST_EQ( v.index(), 1 ); + + v.emplace<0>(); + BOOST_TEST_EQ( v.index(), 0 ); + } + + { + variant v; + BOOST_TEST_EQ( v.index(), 0 ); + + v.emplace<0>(); + BOOST_TEST_EQ( v.index(), 0 ); + + v.emplace<1>(); + BOOST_TEST_EQ( v.index(), 1 ); + + v.emplace<1>(); + BOOST_TEST_EQ( v.index(), 1 ); + + v.emplace<0>(); + BOOST_TEST_EQ( v.index(), 0 ); + } + return boost::report_errors(); }