OpenVDB 13.1.0
Loading...
Searching...
No Matches
is_resource< R, class > Struct Template Reference

Detection trait: is_resource<R>::value is true iff R models the synchronous Resource concept, i.e. exposes allocate(size_t, size_t) and deallocate(void*, size_t, size_t). More...

#include <nanovdb/cuda/DeviceResource.h>

Detailed Description

template<class R, class = void>
struct nanovdb::cuda::is_resource< R, class >

Detection trait: is_resource<R>::value is true iff R models the synchronous Resource concept, i.e. exposes allocate(size_t, size_t) and deallocate(void*, size_t, size_t).

Use it to constrain code paths that need a resource without a stream argument, e.g. host-side allocations:

template<typename R>
void* allocate(R& resource, size_t bytes, size_t alignment)
{
static_assert(nanovdb::cuda::is_resource<R>::value, "R must be a synchronous resource");
return resource.allocate(bytes, alignment);
}
Detection trait: is_resource<R>::value is true iff R models the synchronous Resource concept,...
Definition DeviceResource.h:165