17 inline namespace _V1 {
18 namespace ext::oneapi::detail {
19 template <
typename SYCLObjT>
class weak_object_base;
22 template <
typename SYCLObjT>
25 return WeakObj.MObjWeakPtr;
49 #ifndef __SYCL_DEVICE_ONLY__
64 #ifndef __SYCL_DEVICE_ONLY__
76 static std::weak_ptr<void>
GetWeakImpl(
const SYCLObjT &) {
return {}; }
weak_object_base(weak_object_base &&Other) noexcept=default
weak_object_base & operator=(weak_object_base &&Other) noexcept=default
bool owner_before(const SYCLObjT &Other) const noexcept
bool expired() const noexcept
std::remove_reference< decltype(sycl::detail::getSyclObjImpl(std::declval< SYCLObjT >)))>::type::weak_type MObjWeakPtr
void swap(weak_object_base &Other) noexcept
constexpr weak_object_base() noexcept
weak_object_base(const SYCLObjT &SYCLObj) noexcept
bool owner_before(const weak_object_base &Other) const noexcept
weak_object_base(const weak_object_base &Other) noexcept=default
weak_object_base & operator=(const weak_object_base &Other) noexcept=default
static decltype(MObjWeakPtr) GetWeakImpl(const SYCLObjT &SYCLObj)
decltype(Obj::impl) const & getSyclObjImpl(const Obj &SyclObject)
decltype(weak_object_base< SYCLObjT >::MObjWeakPtr) getSyclWeakObjImpl(const weak_object_base< SYCLObjT > &WeakObj)
_Abi const simd< _Tp, _Abi > & noexcept