thrust::mr::stateless_resource_allocator
Defined in thrust/mr/allocator.h
- 
template<typename T, typename Upstream>
 class stateless_resource_allocator : public thrust::mr::allocator<T, Upstream>
- A helper allocator class that uses global instances of a given upstream memory resource. Requires the memory resource to be default constructible. - Template Parameters
- T – the type that will be allocated by this allocator. 
- Upstream – the upstream memory resource to use for memory allocation. Must derive from - thrust::mr::memory_resourceand must be- final(in C++11 and beyond).
 
 - Public Types - 
using void_pointer = typename MR::pointer
- The pointer to void type of this allocator. 
 - 
using pointer = typename thrust::detail::pointer_traits<void_pointer>::template rebind<T>::other
- The pointer type allocated by this allocator. Equivaled to the pointer type of - MRrebound to- T.
 - 
using const_pointer = typename thrust::detail::pointer_traits<void_pointer>::template rebind<const T>::other
- The pointer to const type. Equivalent to a pointer type of - MRrebound to- const T.
 - 
using reference = typename thrust::detail::pointer_traits<pointer>::reference
- The reference to the type allocated by this allocator. Supports smart references. 
 - 
using const_reference = typename thrust::detail::pointer_traits<const_pointer>::reference
- The const reference to the type allocated by this allocator. Supports smart references. 
 - 
using difference_type = typename thrust::detail::pointer_traits<pointer>::difference_type
- The difference type between pointers allocated by this allocator. 
 - 
using propagate_on_container_copy_assignment = detail::true_type
- Specifies that the allocator shall be propagated on container copy assignment. 
 - 
using propagate_on_container_move_assignment = detail::true_type
- Specifies that the allocator shall be propagated on container move assignment. 
 - 
using propagate_on_container_swap = detail::true_type
- Specifies that the allocator shall be propagated on container swap. 
 - Public Functions - 
inline stateless_resource_allocator()
- Default constructor. Uses - get_global_resourceto get the global instance of- Upstreamand initializes the- allocatorbase subobject with that resource.
 - 
inline stateless_resource_allocator(const stateless_resource_allocator &other)
- Copy constructor. Copies the memory resource pointer. 
 - 
template<typename U>
 inline stateless_resource_allocator(const stateless_resource_allocator<U, Upstream> &other)
- Conversion constructor from an allocator of a different type. Copies the memory resource pointer. 
 - 
stateless_resource_allocator &operator=(const stateless_resource_allocator&) = default
 - 
inline ~stateless_resource_allocator()
- Destructor. 
 - 
inline size_type max_size() const
- Calculates the maximum number of elements allocated by this allocator. - Returns
- the maximum value of - std::size_t, divided by the size of- T.
 
 - 
inline pointer allocate(size_type n)
- Allocates objects of type - T.- Parameters
- n – number of elements to allocate 
- Returns
- a pointer to the newly allocated storage. 
 
 - 
template<typename U>
 struct rebind
- The - rebindmetafunction provides the type of an- stateless_resource_allocatorinstantiated with another type.- Template Parameters
- U – the other type to use for instantiation. 
 - Public Types - 
using other = stateless_resource_allocator<U, Upstream>
- The alias - othergives the type of the rebound- stateless_resource_allocator.