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(); }