Lattice Land Core Library
|
#include <abstract_deps.hpp>
Public Types | |
using | allocators_type = battery::tuple<Allocators...> |
using | allocator_type = typename battery::tuple_element<0, battery::tuple<Allocators...>>::type |
Public Member Functions | |
CUDA | AbstractDeps (bool shared_copy, const Allocators &... allocators) |
CUDA | AbstractDeps (const Allocators &... allocators) |
CUDA size_t | size () const |
CUDA bool | is_shared_copy () const |
template<class A > | |
CUDA abstract_ptr< A > | extract (AType aty) |
template<class A2 , class A > | |
CUDA NI abstract_ptr< A2 > | clone (const abstract_ptr< A > &a) |
template<class Alloc > | |
CUDA Alloc | get_allocator () const |
Static Public Attributes | |
static constexpr size_t | n = battery::tuple_size<battery::tuple<Allocators...>>{} |
Abstract domains are organized in a directed-acyclic graph (DAG). Therefore, it is not straighforward to copy the whole hierarchy, because the child of a node may be shared by another node, and might have already been copied. This class is useful to copy hierarchy of abstract domains. Moreover, the allocators between the original and the copied hierarchy can be different.
The first allocator of the list is used for the internal allocations of this class.
using lala::AbstractDeps< Allocators >::allocators_type = battery::tuple<Allocators...> |
using lala::AbstractDeps< Allocators >::allocator_type = typename battery::tuple_element<0, battery::tuple<Allocators...>>::type |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
staticconstexpr |