thrust::mr::stateless_resource_allocator#
-
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 befinal(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 toT.
-
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 toconst 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 size_type = std::size_t#
The size type of this allocator. Always
std::size_t.
-
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 ofUpstreamand initializes theallocatorbase 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&,
-
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 ofT.
-
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 anstateless_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 reboundstateless_resource_allocator.