diff options
Diffstat (limited to 'absl/functional/overload_test.cc')
-rw-r--r-- | absl/functional/overload_test.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/absl/functional/overload_test.cc b/absl/functional/overload_test.cc index 92f0eb9b..fa49d298 100644 --- a/absl/functional/overload_test.cc +++ b/absl/functional/overload_test.cc @@ -194,6 +194,20 @@ TEST(OverloadTest, UseWithParentheses) { EXPECT_EQ(5, absl::visit(overloaded, v)); } +TEST(OverloadTest, HasConstexprConstructor) { + constexpr auto overloaded = absl::Overload{ + [](int v) { return absl::StrCat("int ", v); }, + [](double v) { return absl::StrCat("double ", v); }, + [](const char* v) { return absl::StrCat("const char* ", v); }, + [](auto v) { return absl::StrCat("auto ", v); }, + }; + + EXPECT_EQ("int 1", overloaded(1)); + EXPECT_EQ("double 2.5", overloaded(2.5)); + EXPECT_EQ("const char* hello", overloaded("hello")); + EXPECT_EQ("auto 1.5", overloaded(1.5f)); +} + } // namespace #endif |