diff --git a/include/etl/private/variant_variadic.h b/include/etl/private/variant_variadic.h index 28b2d99a0..399e5e90c 100644 --- a/include/etl/private/variant_variadic.h +++ b/include/etl/private/variant_variadic.h @@ -531,7 +531,7 @@ namespace etl default_construct_in_place(data); operation = operation_type::value, etl::is_move_constructible::value>::do_operation; - type_id = 0U; + type_id = variant_npos; } #include "diagnostic_pop.h" diff --git a/test/test_variant_variadic.cpp b/test/test_variant_variadic.cpp index 34e9178c0..e35d48e89 100644 --- a/test/test_variant_variadic.cpp +++ b/test/test_variant_variadic.cpp @@ -420,15 +420,15 @@ namespace test_variant_etl_3 variant_etl; - CHECK(etl::holds_alternative(variant_etl)); + CHECK(!etl::holds_alternative(variant_etl)); CHECK(!etl::holds_alternative(variant_etl)); CHECK(!etl::holds_alternative(variant_etl)); - CHECK(etl::holds_alternative<0U>(variant_etl)); + CHECK(!etl::holds_alternative<0U>(variant_etl)); CHECK(!etl::holds_alternative<1U>(variant_etl)); CHECK(!etl::holds_alternative<2U>(variant_etl)); - CHECK(etl::holds_alternative(0U, variant_etl)); + CHECK(!etl::holds_alternative(0U, variant_etl)); CHECK(!etl::holds_alternative(1U, variant_etl)); CHECK(!etl::holds_alternative(2U, variant_etl)); CHECK(!etl::holds_alternative(99U, variant_etl)); @@ -1830,7 +1830,7 @@ namespace //************************************************************************* TEST(test_variant_visit_void) { - etl::variant variant1; + etl::variant variant1 = int8_t{}; bool variant_was_signed{}; auto const f = [&variant_was_signed](auto v) @@ -1857,7 +1857,7 @@ namespace std::string result = "?"; - etl::variant package; + etl::variant package = TypeA{}; etl::visit(etl::overload {