FairRoot/PandaRoot
|
#include <PndCAArray.h>
Public Types | |
typedef PndCAInternal::TypeForAlignmentHelper < T, alignment >::Type | T2 |
typedef PndCAInternal::ArrayBase< T2, Dim > | Parent |
Public Member Functions | |
PndCAResizableArray () | |
PndCAResizableArray (int x) | |
PndCAResizableArray (int x, int y) | |
PndCAResizableArray (int x, int y, int z) | |
~PndCAResizableArray () | |
void | Resize (int x) |
void | Resize (int x, int y) |
void | Resize (int x, int y, int z) |
int | Size () const |
operator bool () const | |
bool | IsValid () const |
PndCAInternal::TypeForAlignmentHelper < T, alignment >::Type & | operator* () |
const PndCAInternal::TypeForAlignmentHelper < T, alignment >::Type & | operator* () const |
PndCAInternal::TypeForAlignmentHelper < T, alignment >::Type * | Data () |
const PndCAInternal::TypeForAlignmentHelper < T, alignment >::Type * | Data () const |
PndCAArray | operator+ (int x) const |
PndCAArray | operator- (int x) const |
PndCAArray< Other, Dim > | ReinterpretCast () const |
Private Member Functions | |
void * | operator new (size_t) |
PndCAResizableArray (const PndCAResizableArray &) | |
PndCAResizableArray & | operator= (const PndCAResizableArray &) |
Owns the data. When it goes out of scope the data is freed.
The memory is allocated on the heap.
Instantiate this class on the stack. Allocation on the heap is disallowed.
T | type of the entries in the array. |
Dim | selects the operator[]/operator() behavior it should have. I.e. makes it behave like a 1-, 2- or 3-dim array. (defaults to 1) |
alignment | Defaults to 0 (default alignment). Other valid values are any multiples of 2. This is especially useful for aligning data for SIMD vectors. |
Example:
Definition at line 455 of file PndCAArray.h.
typedef PndCAInternal::ArrayBase<T2, Dim> PndCAResizableArray< T, Dim, alignment >::Parent |
Definition at line 459 of file PndCAArray.h.
typedef PndCAInternal::TypeForAlignmentHelper<T, alignment>::Type PndCAResizableArray< T, Dim, alignment >::T2 |
Definition at line 458 of file PndCAArray.h.
|
inline |
does not allocate any memory
Definition at line 671 of file PndCAArray.h.
|
inline |
use for 1-dim arrays: allocates x * sizeof(T) bytes for the array
Definition at line 678 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Alloc().
|
inline |
use for 2-dim arrays: allocates x * y * sizeof(T) bytes for the array
Definition at line 686 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Alloc().
|
inline |
use for 3-dim arrays: allocates x * y * z * sizeof(T) bytes for the array
Definition at line 694 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Alloc().
|
inline |
frees the data
Definition at line 480 of file PndCAArray.h.
References PndCAInternal::Allocator< T, alignment >::Free().
|
private |
|
inlineinherited |
returns a pointer to the data This circumvents bounds checking so it should not be used.
Definition at line 398 of file PndCAArray.h.
|
inlineinherited |
returns a const pointer to the data This circumvents bounds checking so it should not be used.
Definition at line 403 of file PndCAArray.h.
|
inlineinherited |
allows you to check for validity of the array
Definition at line 383 of file PndCAArray.h.
|
inlineinherited |
allows you to check for validity of the array by casting to bool
Definition at line 379 of file PndCAArray.h.
|
private |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
moves the array base pointer so that the data that was once at index 0 will then be at index -x
|
inlineinherited |
moves the array base pointer so that the data that was once at index 0 will then be at index x
|
private |
|
inlineinherited |
Definition at line 414 of file PndCAArray.h.
|
inline |
use for 1-dim arrays: resizes the memory for the array to x * sizeof(T) bytes.
Definition at line 703 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Free().
|
inline |
use for 2-dim arrays: resizes the memory for the array to x * y * sizeof(T) bytes.
Definition at line 712 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Free().
|
inline |
use for 3-dim arrays: resizes the memory for the array to x * y * z * sizeof(T) bytes.
Definition at line 721 of file PndCAArray.h.
References ALIHLTARRAY_STATIC_ASSERT, and PndCAInternal::Allocator< T, alignment >::Free().
|
inlineinherited |
Returns the number of elements in the array. If it is a multi-dimensional array the size is the multiplication of the dimensions ( e.g. a 10 x 20 array returns 200 as its size ).
Definition at line 374 of file PndCAArray.h.