From 95a11020a168f9f068ac730f40eec0370571ca5a Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Fri, 3 Jan 2020 15:31:12 +0000 Subject: introduce overload class and use it with std::visit when inspecting std::alternative --- vespalib/src/tests/overload/overload_test.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 vespalib/src/tests/overload/overload_test.cpp (limited to 'vespalib/src/tests/overload/overload_test.cpp') diff --git a/vespalib/src/tests/overload/overload_test.cpp b/vespalib/src/tests/overload/overload_test.cpp new file mode 100644 index 00000000000..ceae29ac02f --- /dev/null +++ b/vespalib/src/tests/overload/overload_test.cpp @@ -0,0 +1,19 @@ +// Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include +#include +#include +#include + +using namespace vespalib; + +TEST(OverloadTest, visit_with_overload_works) { + std::variant a = 10; + std::variant b = "foo"; + std::visit(overload{[](int v){ EXPECT_EQ(v,10); }, + [](const std::string &){ FAIL() << "invalid visit"; }}, a); + std::visit(overload{[](int){ FAIL() << "invalid visit"; }, + [](const std::string &v){ EXPECT_EQ(v, "foo"); }}, b); +} + +GTEST_MAIN_RUN_ALL_TESTS() -- cgit v1.2.3