diff --git a/mfbt/tests/TestResult.cpp b/mfbt/tests/TestResult.cpp index b66d3b608ed2c0f27d380833eb01149876ca8a43..20680e41c832ca6511906b0dd898de2163c3fe09 100644 --- a/mfbt/tests/TestResult.cpp +++ b/mfbt/tests/TestResult.cpp @@ -98,11 +98,13 @@ static_assert(sizeof(Foo32) >= sizeof(uintptr_t) || sizeof(Result<Foo16, Foo32>) <= sizeof(uintptr_t), "Result with small types should be pointer-sized"); +#if __cplusplus < 202002L static_assert(std::is_literal_type_v<Result<int*, Failed>>); static_assert(std::is_literal_type_v<Result<Ok, Failed>>); static_assert(std::is_literal_type_v<Result<Ok, Foo8>>); static_assert(std::is_literal_type_v<Result<Foo8, Foo16>>); static_assert(!std::is_literal_type_v<Result<Ok, UniquePtr<int>>>); +#endif static constexpr GenericErrorResult<Failed> Fail() { return Err(Failed{}); } diff --git a/mfbt/tests/TestTypedEnum.cpp b/mfbt/tests/TestTypedEnum.cpp index 814d3485ce416df84a06dddc02bc7839ae1fca5c..cddbb39e0b75fecdb44dc6b1dfcd983c81c8048a 100644 --- a/mfbt/tests/TestTypedEnum.cpp +++ b/mfbt/tests/TestTypedEnum.cpp @@ -11,10 +11,10 @@ #include <type_traits> // A rough feature check for is_literal_type. Not very carefully checked. -// Feel free to amend as needed. +// Feel free to amend as needed. is_literal_type was removed in C++20. // We leave ANDROID out because it's using stlport which doesn't have // std::is_literal_type. -#if __cplusplus >= 201103L && !defined(ANDROID) +#if __cplusplus >= 201103L && __cplusplus < 202002L && !defined(ANDROID) # if defined(__clang__) /* * Per Clang documentation, "Note that marketing version numbers should not