Dear ROOTers,
I had some code that use std::complex. This class also use templates (of ROOT objects). Last time I changed name of one method from this template. I clean my build, try again and…
I have problem with
Error: Symbol complex is not defined in current scope /opt/fair_install_dec/FairRoot/nicaroot/analysis/femto/ana/NicaFemtoYLMAna.h:45:
Error: Symbol double is not defined in current scope /opt/fair_install_dec/FairRoot/nicaroot/analysis/femto/ana/NicaFemtoYLMAna.h:45:
Because I have something like:
std::complex<double> *fYlmBuffer; // [fMaxJM] buffer for ylm calculation
I can use ifdef CINT but I would like avoid it. I have included .I tried add #pragma linkdef class std::complex but it caused another error:
Error: link requested for unknown class std::complex<double> /opt/fair_install_dec/FairRoot/nicaroot/analysis/femto/NicaFemtoLinkDef.h:7:
This code worked before without such problems, I suppose that problem is rather caused by fact that I enforced rebuild of code than by messing in cod.
Any hints how fix this?
Hi,
basically I’m still working on it. I cannot prepare simple “non-working class” because when I separate few classes and one that depend on them makes problem - it works . So I suppose there might be problem in dependencies (there is a lot of circular dependencies but they should not be visible for CINT if they are outside of headers?
Hi,
it works wit ROOT 6.08.
I also find source of problems in ROOT 5, it was because my project contained directory called “complex”. I don’t know why this didn’t make problems before but renaming this directory solved problem.