-
Notifications
You must be signed in to change notification settings - Fork 358
Description
thrust::optional supports references (thrust::optional<T&> works) while cuda::std::optional does not, since std::optional does also not support them. This is changing with P2988 which was designed approved in September 2024, but has not been voted into the C++ standard yet.
In #3307 we deprecated thrust::optional with a message pointing users to cuda::std::optional, and backported it to CCCL 2.8: #3393. However, now users see a deprecation warning pointing them to a less capable alternative. This should be fixed. As we want to remove thrust::optional, we should support cuda::std::optional<T&>. The question is when.
We only have limited time left to come up with an implementation and backport it to 2.8. It's more likely we can get it done for 3.0. However, this would leave users of CCCL 2.8 with a deprecation warning on thrust::optional<T&> with no alternative. Is this acceptable?