From 9621db1cd7ecc06cb8bd0f7678987046c297d4b8 Mon Sep 17 00:00:00 2001 From: Nicolai Trandafil Date: Sun, 24 Nov 2019 14:24:15 +0200 Subject: [PATCH 1/2] add a failing case --- tests/not_default_constructible.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/not_default_constructible.cpp b/tests/not_default_constructible.cpp index dd192a1..bfccbde 100644 --- a/tests/not_default_constructible.cpp +++ b/tests/not_default_constructible.cpp @@ -96,6 +96,7 @@ TEST(DeserializeNonDefaultConstructible, ResultContainerShouldShrink) { std::vector res{}; res.emplace_back(2); res.emplace_back(3); + res.emplace_back(4); ctx.createSerializer().container(data, 10); ctx.createDeserializer().container(res, 10); From 04afd16fbd640e586ae0cc2850e21a1ca2c65d63 Mon Sep 17 00:00:00 2001 From: Nicolai Trandafil Date: Sun, 24 Nov 2019 14:30:43 +0200 Subject: [PATCH 2/2] fix non default constructible container deser --- include/bitsery/traits/core/std_defaults.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/bitsery/traits/core/std_defaults.h b/include/bitsery/traits/core/std_defaults.h index 066bc7b..dade1f4 100644 --- a/include/bitsery/traits/core/std_defaults.h +++ b/include/bitsery/traits/core/std_defaults.h @@ -65,7 +65,7 @@ namespace bitsery { container.push_back(::bitsery::Access::create()); } if (oldSize > newSize) { - container.erase(std::next(std::begin(container), newSize)); + container.erase(std::next(std::begin(container), newSize), std::end(container)); } }