From be34f768e093cb6752ab81fde3ab529861a8a6a8 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sat, 2 Nov 2024 18:32:17 +0100 Subject: Add emplace to option --- asl/tests/option_tests.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'asl/tests') diff --git a/asl/tests/option_tests.cpp b/asl/tests/option_tests.cpp index ec6e957..73998f8 100644 --- a/asl/tests/option_tests.cpp +++ b/asl/tests/option_tests.cpp @@ -198,3 +198,29 @@ ASL_TEST(value_or) ASL_TEST_EXPECT(a.value_or(5) == 5); ASL_TEST_EXPECT(b.value_or(5) == 2); } + +ASL_TEST(emplace) +{ + asl::option a = asl::nullopt; + + a.emplace(42); + ASL_TEST_EXPECT(a.has_value()); + ASL_TEST_EXPECT(a.value() == 42); +} + +ASL_TEST(emplace_destroys_previous) +{ + bool b1 = false; + bool b2 = false; + + { + asl::option a{&b1}; + ASL_TEST_EXPECT(!b1); + + a.emplace(&b2); + ASL_TEST_EXPECT(b1); + ASL_TEST_EXPECT(!b2); + } + + ASL_TEST_EXPECT(b2); +} -- cgit