Arrays of histograms

Yet another problem with root 6.
I used multidimensional arrays of histograms in order to easily plot them
superimposed, within a loop.
With root 6:
TH1F* segRateMB_W[3][4][5];
seems to be no longer allowed…

how does it fail?


Work around:
std::array<std::array<std::array<TH1*, 5>, 4>, 3> segRateMB_W;

Seems like a bug in older some ROOT versions, e.g. I can reproduce it with some 6.09/03 version (Edit: I’ve just pulled the current ROOT version and it seems the bug is gone, so what is the error message?):

% root -l
root [0] void *x[1][1];
In file included from input_line_11:21:
In file included from .../etc/dictpch/allHeaders.h:253:
.../etc/cling/Interpreter/RuntimeUniverse.h:165:11: error: array 'new' cannot have initialization arguments
          new ((void*)(((T*)placement) + i)) T(src[i]);
          ^                                    ~~~~~~
note: in instantiation of function template specialization 'cling::runtime::internal::copyArray<void *[1]>' requested here

Hi thank you both. The error message I get is the same reported by Behrenhoff, the root version on my system is 6.05!
I just turned from interpreted to compiled macro: bit boring but works :slight_smile:

It seems we fixed that error message also in 6.10 (at least).

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.