TNDArray N-Dim array class. Storage layout: Assume 3 dimensions, array sizes 2, 4 and 3 i.e. 24 bins: Data is stored as [0,0,0], [0,0,1], [0,0,2], [0,1,0],... fSizes stores the combined size of each bin in a dimension, i.e. in above example it would contain 24, 12, 3, 1. Storage is allocated lazily, only when data is written to the array. TNDArrayRef gives access to a sub-dimension, e.g. arr[0][1] in above three-dimensional example, up to an element with conversion operator to double: double value = arr[0][1][2];
~TNDArrayRef<char>() | |
static TClass* | Class() |
TClass* | IsA() const |
char | operator char() const |
TNDArrayRef<char>& | operator=(const TNDArrayRef<char>&) |
TNDArrayRef<char>& | operator=(TNDArrayRef<char>&&) |
TNDArrayRef<char> | operator[](Int_t idx) const |
void | ShowMembers(TMemberInspector& insp) const |
void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
TNDArrayRef<char>(const TNDArrayRef<char>&) | |
TNDArrayRef<char>(TNDArrayRef<char>&&) | |
TNDArrayRef<char>(const char* data, const Long64_t* sizes) |
const char* | fData | pointer into TNDArray's fData |
const Long64_t* | fSizes | pointer into TNDArray's fSizes |
Inheritance Chart: | |||||
|
When building with -fmodules, it instantiates all pending instantiations, instead of delaying them until the end of the translation unit. We 'got away with' probably because the use and the definition of the explicit specialization do not occur in the same TU. In case we are building with -fmodules, we need to forward declare the specialization in order to compile the dictionary G__Hist.cxx.