// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/functional/overloaded.h" #include #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/variant.h" namespace base { TEST(FunctionalTest, Overloaded) { struct PackageA {}; struct PackageB {}; absl::variant var = PackageA(); const std::string output = absl::visit(Overloaded{[](const PackageA& pack) { return "PackageA"; }, [](const PackageB& pack) { return "PackageB"; }}, var); EXPECT_EQ(output, "PackageA"); } } // namespace base