Commit 3b49be07 authored by Abseil Team's avatar Abseil Team Committed by CJ Johnson
Browse files

Googletest export

googletest: Add printer for {std,absl}::nullopt.
PiperOrigin-RevId: 399928554
parent ab36804e
...@@ -742,6 +742,14 @@ class UniversalPrinter<Optional<T>> { ...@@ -742,6 +742,14 @@ class UniversalPrinter<Optional<T>> {
} }
}; };
template <>
class UniversalPrinter<decltype(Nullopt())> {
public:
static void Print(decltype(Nullopt()), ::std::ostream* os) {
*os << "(nullopt)";
}
};
#endif // GTEST_INTERNAL_HAS_OPTIONAL #endif // GTEST_INTERNAL_HAS_OPTIONAL
#if GTEST_INTERNAL_HAS_VARIANT #if GTEST_INTERNAL_HAS_VARIANT
......
...@@ -2325,6 +2325,7 @@ namespace testing { ...@@ -2325,6 +2325,7 @@ namespace testing {
namespace internal { namespace internal {
template <typename T> template <typename T>
using Optional = ::absl::optional<T>; using Optional = ::absl::optional<T>;
inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; }
} // namespace internal } // namespace internal
} // namespace testing } // namespace testing
#else #else
...@@ -2338,6 +2339,7 @@ namespace testing { ...@@ -2338,6 +2339,7 @@ namespace testing {
namespace internal { namespace internal {
template <typename T> template <typename T>
using Optional = ::std::optional<T>; using Optional = ::std::optional<T>;
inline ::std::nullopt_t Nullopt() { return ::std::nullopt; }
} // namespace internal } // namespace internal
} // namespace testing } // namespace testing
// The case where absl is configured NOT to alias std::optional is not // The case where absl is configured NOT to alias std::optional is not
......
...@@ -1873,6 +1873,7 @@ TEST_F(PrintAnyTest, NonEmpty) { ...@@ -1873,6 +1873,7 @@ TEST_F(PrintAnyTest, NonEmpty) {
#if GTEST_INTERNAL_HAS_OPTIONAL #if GTEST_INTERNAL_HAS_OPTIONAL
TEST(PrintOptionalTest, Basic) { TEST(PrintOptionalTest, Basic) {
EXPECT_EQ("(nullopt)", PrintToString(internal::Nullopt()));
internal::Optional<int> value; internal::Optional<int> value;
EXPECT_EQ("(nullopt)", PrintToString(value)); EXPECT_EQ("(nullopt)", PrintToString(value));
value = {7}; value = {7};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment