Including <boost/histogram*> in QC fails

Dear experts,

I am trying to include boost histogram headers in QualityControl and get an error in the compilation. The log can be found here.

What I do specifically is to include boost/histogram.hpp in QualityControl/Modules/TPC/include/TPC/PID.h but I found that it is not specific to the PID.h header. It happens also when I put the include line in any other header in QC (I tried QualityControl/Framework/include/QualityControl/TaskInterface.h randomly).

It is also not specific to the boost/histogram.hpp header but happens with boost/histogram*.
Also it is not happening with everything in boost but only boost histogram related headers. E.g. boost/range/iterator.hpp (chosen randomly) works. This makes sense since the problem seems to be the definition of rank.

Adding boost/histogram headers in any O2 header file is working without any problem.

Is there any obvious step that I am missing?

In O2 there was a problem a while ago that looks very similar to me, see here. Therefore, I ping @shahoian.

Thanks a lot for any help!


A little update:

With a later version of O2 (since ~25th November) I do not only get the error when a boost histogram header file is included in QualityControl. I also get a very similar error when I compile a macro in O2 on-the-fly where a boost histogram header is included.

In my specific case: I include boost/histogram.hpp in O2/Detectors/TPC/qc/macro/runPID.C (indirectly via O2/Detectors/TPC/qc/include/TPCQC/PID.h).

The log can be found here.
For completeness: This happens on ubuntu 18.04.

Any ideas what I could do?


Sorry, this thread went under my radar. I am giving it a try now to reproduce the problem.


I am opening a bug report:

I confirm the problem on CC7 and in O2.

1 Like