ROOT Version: Occurs on both 6.24.02 and 6.26.00
Platform: Ubuntu 22.04
Compiler: Occurs on both GCC 9.5 and GCC 11.3
Hi all,
I’m running into what I consider to be a very strange issue. I have some software I developed a couple of years ago, which makes use of ROOT, and has compiled succesfully on various Linux platforms. I noticed that on a new computer, the compiler threw an error:
>/usr/local/etc/root-6.26.00_install/include/ROOT/TExecutorCRTP.hxx:191:1: error: no declaration matches ‘std::vector<typename std::result_of<F(INTEGER)>::type> ROOT::TExecutorCRTP<SubC>::Map(F, ROOT::TSeq<INTEGER>)’
191 | auto TExecutorCRTP<SubC>::Map(F func, ROOT::TSeq<INTEGER> args) -> std::vector<typename std::result_of<F(INTEGER)>::type>
....
"Error: no matching function for call to ‘ROOT::TProcessExecutor::Map(SuperTrackManager::Run()::<lambda(ThreadAllocation)>&, std::vector<ThreadAllocation>&)’"
As part of troubleshooting, I tested older verions of ROOT and of GCC which the software had succesfully compiled with in the past but received the same result. Only when I reverted my version of CUDA from 12.0 to 11.5, did the compiler error above go away. The application I am compiling does make use of CUDA, but I can’t imagine why changing the version of CUDA would affect a compiler error related to TProcessExecutor. Also, ROOT itself was compiled with CUDA 12.0, so it’s not a CUDA version mismatch issue.
I would really appreciate any insight as to what might be happening here,
Best,
Joseph