[libcxx-commits] [libcxx] [libc++] Implement P2988R12: `std::optional<T&>` (PR #155202)
A. Jiang via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Oct 26 02:37:18 PDT 2025
================
@@ -64,6 +64,24 @@ int main(int, char**)
}
assert(X::dtor_called == true);
}
+#if TEST_STD_VER >= 26
+ {
+ typedef X& T;
+ static_assert(std::is_trivially_destructible<T>::value);
+ static_assert(std::is_trivially_destructible<optional<T>>::value);
+ }
+ X::dtor_called = false;
+ X x;
+ {
+ optional<X&> opt{x};
+ assert(X::dtor_called == false);
+ }
+ assert(X::dtor_called == false);
- return 0;
+ {
+ static_assert(std::is_trivially_destructible<X (&)()>::value);
+ static_assert(std::is_trivially_destructible<optional<X (&)()>>::value);
----------------
frederick-vs-ja wrote:
```suggestion
static_assert(std::is_trivially_destructible_v<X (&)()>);
static_assert(std::is_trivially_destructible_v<optional<X (&)()>>);
```
https://github.com/llvm/llvm-project/pull/155202
More information about the libcxx-commits
mailing list