Go to the documentation of this file. 1 #ifndef HeterogeneousCore_CUDAUtilities_interface_SimpleVector_h
2 #define HeterogeneousCore_CUDAUtilities_interface_SimpleVector_h
26 auto previousSize =
m_size;
29 m_data[previousSize] = element;
37 template <
class... Ts>
39 auto previousSize =
m_size;
42 (
new (&
m_data[previousSize])
T(std::forward<Ts>(
args)...));
63 m_data[previousSize] = element;
71 template <
class... Ts>
75 (
new (&
m_data[previousSize])
T(std::forward<Ts>(
args)...));
96 if (previousSize >=
size) {
97 return previousSize -
size;
141 #endif // HeterogeneousCore_CUDAUtilities_interface_SimpleVector_h
ret
prodAgent to be discontinued
T1 atomicSub(T1 *a, T2 b)
size d for d tracks hist hist capacity()
__device__ int emplace_back(Ts &&... args)
constexpr const T * data() const
constexpr int capacity() const
constexpr T & operator[](int i)
uint16_t mem[nChs][nEvts]
constexpr void set_data(T *data)
constexpr SimpleVector()=default
constexpr void construct(int capacity, T *data)
constexpr const T & operator[](int i) const
T1 atomicAdd(T1 *a, T2 b)
const __device__ T & back() const
constexpr int push_back_unsafe(const T &element)
__device__ int shrink(int size=1)
SimpleVector< T > make_SimpleVector(int capacity, T *data)
constexpr bool empty() const
constexpr void resize(int size)
constexpr bool full() const
constexpr int emplace_back_unsafe(Ts &&... args)
__device__ int push_back(const T &element)
char data[epos_bytes_allocation]
constexpr int size() const
__device__ int extend(int size=1)
Namespace of DDCMS conversion namespace.