ROOT Version: 6.36.00 Platform: MAC OS 15.5 (24F74) Compiler: Apple clang version 17.0.0 (clang-1700.0.13.5)
A new feature with clang??? Ambiguous overload operator…
In file included from /usr/local/Cellar/root/6.36.00/include/root/TStreamerInfo.h:20:
In file included from /usr/local/Cellar/root/6.36.00/include/root/TVirtualCollectionProxy.h:25:
/usr/local/Cellar/root/6.36.00/include/root/TClassRef.h:47:52: error: use of overloaded operator '!=' is ambiguous (with operand types 'std::atomic<TClass *const *>' and 'const std::atomic<TClass *const *>')
if (this != &rhs && (!fClassPtr || fClassPtr != rhs.fClassPtr)) { ...
yes. I upgraded root via the brew upgrade root command. But this should be independent of the compiled root code. I am trying to build a library that built under the previous OS.
I was able to eliminate the problem by commenting out the operator!=() function from the FastJet package. My code calls sorting functions from the FastJet package. So when the G_Jets.xxx file is compiled to generate callable code from root, somehow the operator!=() of the fast jet package would “collide” with the root operator!=().
It appears that FastJet code defines operator!=() but does not use it. So… commenting it out in the FastJet package does not brake anything and the code compiles…
The real question is why there is an ambiguity with the new OS but there was not with the previous…
The real question is why there is an ambiguity with the new OS but there was not with the previous…
In this case, it seems that instead of the new OS, it is likely that it is the new XCode version which comes with a new version of the compiler which may be better at finding issue or something like that