Async/CUDA/`sort`:
* Add missing include of logical metafunctions.
* Use `operator&` instead of `addressof` in a place where we want to allow smart
pointers.
Bug
MODIFY
thrust/system/cuda/detail/async/sort.h
thrust/system/cuda/detail/async/sort.h
#include <thrust/system/cuda/future.h>
#include <thrust/type_traits/is_trivially_relocatable.h>
#include <thrust/type_traits/is_contiguous_iterator.h>
+#include <thrust/type_traits/logical_metafunctions.h>
#include <thrust/iterator/iterator_traits.h>
#include <thrust/detail/static_assert.h>
#include <thrust/distance.h>
-#include <thrust/addressof.h>
#include <type_traits>
@@ -253,7 +253,7 @@ auto async_stable_sort_n(
unique_eager_future_promise_pair<void, pointer> fp;
thrust::cuda_cub::cub::DoubleBuffer<T> keys(
- raw_pointer_cast(addressof(*first)), nullptr
+ raw_pointer_cast(&*first), nullptr
);
// Determine temporary device storage requirements.

Async/CUDA/`sort`:
* Add missing include of logical metafunctions.
* Use `operator&` instead of `addressof` in a place where we want to allow smart
  pointers.

Bug 2379510