Closed vvolkl closed 3 years ago
Someone else might have another solution but the conda based images are built with C++ 17.
Hi Valentin, the arch and conda tags are C++17 and the Fedora tag is C++14.
The centos7 and ubuntu20.04 tags (the latter is the default one you get with rootproject/root
) are C++11.
I assume here you refer to rootproject/root:latest
i.e. ubuntu20.04. I think there are good arguments to use it as default tag (it's the only ROOT package we directly control among those that we use to build the images, and Ubuntu is a common default linux flavour). I'll check whether we can move those builds to at least C++14, but if you need C++17 I suggest you switch to a different tag. Would that work for you?
Hi Enrico,
yes, indeed, I meant the ubuntu image - sorry for not being more specific about which image I was talking about. That works for me, we can indeed switch to a different tag, but I think also the build works with a root: cxxstd14 / downstreampackage: cxxstd17 situation. Thanks!
The Ubuntu 20.04 build should indeed be C++14, it's a known (critical) bug: https://sft.its.cern.ch/jira/browse/ROOT-10692 . This will soon be rectified, so rootproject/root:latest
will be C++14. I will close this issue when ROOT-10692 is fixed, does that sound reasonable?
Note that mixing C++ standards works until it doesn't: compilers might introduce ABI incompatibilities, or cling+C++14 might have ABI incompatibilities with, e.g., gcc+C++17 that we don't test for.
(the README now mentions which tags support which C++ standard)
ROOT 6.24 will be built with C++14 also on Ubuntu20.04.
The binaries here are built with cxx11, which means they cannot be used for some software packages that require cxx17. I see that the binaries are just copied from the root download page, so I'm not sure this is the right place, but still, is it possible to switch to cxx17?