Problem of ROOT with crmc codes

Dear experts I am trying to install crmc v1.8.0 on Ubuntu 22 with hepmc 2.06.09 and Root 6.26/10 and i am getting following error please suggest

sajid@sajid-HP-EliteBook-840-G6:~/Downloads/install$ cmake --build .
Scanning dependencies of target HepEvtDummy
[ 2%] Building Fortran object CMakeFiles/HepEvtDummy.dir/src/dummy.f.o
[ 5%] Linking Fortran shared library libHepEvtDummy.so
[ 5%] Built target HepEvtDummy
Consolidate compiler generated dependencies of target crmc
[ 7%] Building CXX object CMakeFiles/crmc.dir/src/crmcMain.cc.o
[ 10%] Building CXX object CMakeFiles/crmc.dir/src/CRMC.cc.o
[ 13%] Building CXX object CMakeFiles/crmc.dir/src/CRMCinterface.cc.o
[ 15%] Building CXX object CMakeFiles/crmc.dir/src/CRMCoptions.cc.o
[ 18%] Building CXX object CMakeFiles/crmc.dir/src/OutputPolicyLHE.cc.o
[ 21%] Building CXX object CMakeFiles/crmc.dir/src/OutputPolicyNone.cc.o
[ 23%] Building C object CMakeFiles/crmc.dir/src/CRMCtrapfpe.c.o
[ 26%] Building CXX object CMakeFiles/crmc.dir/src/OutputPolicyROOT.cc.o
In file included from /home/sajid/Downloads/root/include/RtypesCore.h:23,
from /home/sajid/Downloads/root/include/Compression.h:15,
from /home/sajid/Downloads/root/include/TTree.h:29,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/ROOT/RConfig.hxx:48:4: error: #error “ROOT requires support for C++14 or higher.”
48 | # error “ROOT requires support for C++14 or higher.”
| ^~~~~
/home/sajid/Downloads/root/include/ROOT/RConfig.hxx:50:5: error: #error “Pass -std=c++14 as compiler argument.”
50 | # error “Pass -std=c++14 as compiler argument.”
| ^~~~~
In file included from /home/sajid/Downloads/root/include/TString.h:29,
from /home/sajid/Downloads/root/include/TNamed.h:26,
from /home/sajid/Downloads/root/include/TDictionary.h:44,
from /home/sajid/Downloads/root/include/TClass.h:23,
from /home/sajid/Downloads/root/include/TTree.h:36,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/ROOT/RStringView.hxx:90:17: error: expected type-specifier
90 | operator std::string_view() const { return std::string_view(fData,fLength); }
| ^~~
In file included from /home/sajid/Downloads/root/include/TString.h:30,
from /home/sajid/Downloads/root/include/TNamed.h:26,
from /home/sajid/Downloads/root/include/TDictionary.h:44,
from /home/sajid/Downloads/root/include/TClass.h:23,
from /home/sajid/Downloads/root/include/TTree.h:36,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:49:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
49 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:49:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
49 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:49:66: error: template argument 1 is invalid
49 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:57:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
57 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:57:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
57 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:57:66: error: template argument 1 is invalid
57 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:65:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
65 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:65:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
65 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:65:66: error: template argument 1 is invalid
65 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:73:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
73 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:73:54: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
73 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^~~~~~~
| decay
/home/sajid/Downloads/root/include/ROOT/TypeTraits.hxx:73:66: error: template argument 1 is invalid
73 | using arg_types = ROOT::TypeTraits::TypeList<std::decay_t…>;
| ^
In file included from /home/sajid/Downloads/root/include/TNamed.h:26,
from /home/sajid/Downloads/root/include/TDictionary.h:44,
from /home/sajid/Downloads/root/include/TClass.h:23,
from /home/sajid/Downloads/root/include/TTree.h:36,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/TString.h:115:13: error: expected type-specifier
115 | operator std::string_view() const { return std::string_view(Data(),fExtent); }
| ^~~
/home/sajid/Downloads/root/include/TString.h:280:32: error: ‘string_view’ in namespace ‘std’ does not name a type
280 | explicit TString(const std::string_view &sub);
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:280:27: note: ‘std::string_view’ is only available from C++17 onwards
280 | explicit TString(const std::string_view &sub);
| ^~~
/home/sajid/Downloads/root/include/TString.h:317:37: error: ‘string_view’ in namespace ‘std’ does not name a type
317 | TString &operator=(const std::string_view &s);
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:317:32: note: ‘std::string_view’ is only available from C++17 onwards
317 | TString &operator=(const std::string_view &s);
| ^~~
/home/sajid/Downloads/root/include/TString.h:444:9: error: ‘string_view’ in namespace ‘std’ does not name a type
444 | std::string_view View() const { return std::string_view(GetPointer(),Length()); }
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:444:4: note: ‘std::string_view’ is only available from C++17 onwards
444 | std::string_view View() const { return std::string_view(GetPointer(),Length()); }
| ^~~
In file included from /home/sajid/Downloads/root/include/TNamed.h:26,
from /home/sajid/Downloads/root/include/TDictionary.h:44,
from /home/sajid/Downloads/root/include/TClass.h:23,
from /home/sajid/Downloads/root/include/TTree.h:36,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/TString.h:839:53: error: ‘string_view’ in namespace ‘std’ does not name a type
839 | inline Bool_t operator==(const char *s1, const std::string_view &s2)
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:839:48: note: ‘std::string_view’ is only available from C++17 onwards
839 | inline Bool_t operator==(const char s1, const std::string_view &s2)
| ^~~
/home/sajid/Downloads/root/include/TString.h:839:15: error: ‘Bool_t operator==(const char
, const int&)’ must have an argument of class or enumerated type
839 | inline Bool_t operator==(const char *s1, const std::string_view &s2)
| ^~~~~~~~
/home/sajid/Downloads/root/include/TString.h:844:37: error: ‘string_view’ in namespace ‘std’ does not name a type
844 | inline Bool_t operator==(const std::string_view &s1, const char s2)
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:844:32: note: ‘std::string_view’ is only available from C++17 onwards
844 | inline Bool_t operator==(const std::string_view &s1, const char s2)
| ^~~
/home/sajid/Downloads/root/include/TString.h:844:15: error: ‘Bool_t operator==(const int&, const char
)’ must have an argument of class or enumerated type
844 | inline Bool_t operator==(const std::string_view &s1, const char s2)
| ^~~~~~~~
/home/sajid/Downloads/root/include/TString.h:857:37: error: ‘string_view’ in namespace ‘std’ does not name a type
857 | std::string printValue(const std::string_view
val);
| ^~~~~~~~~~~
/home/sajid/Downloads/root/include/TString.h:857:32: note: ‘std::string_view’ is only available from C++17 onwards
857 | std::string printValue(const std::string_view
val);
| ^~~
In file included from /home/sajid/Downloads/root/include/TCollection.h:33,
from /home/sajid/Downloads/root/include/TSeqCollection.h:25,
from /home/sajid/Downloads/root/include/TObjArray.h:25,
from /home/sajid/Downloads/root/include/TClass.h:29,
from /home/sajid/Downloads/root/include/TTree.h:36,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/ROOT/RRangeCast.hxx:144:64: error: ‘cbegin’ is not a member of ‘std’; did you mean ‘begin’?
144 | using const_iterator = Internal::TypedIter<T, decltype(std::cbegin(std::declval<Range_t>())), isDynamic>;
| ^~~~~~
| begin
/home/sajid/Downloads/root/include/ROOT/RRangeCast.hxx:144:64: error: ‘cbegin’ is not a member of ‘std’; did you mean ‘begin’?
144 | using const_iterator = Internal::TypedIter<T, decltype(std::cbegin(std::declval<Range_t>())), isDynamic>;
| ^~~~~~
| begin
/home/sajid/Downloads/root/include/ROOT/RRangeCast.hxx:144:107: error: template argument 2 is invalid
144 | ypedIter<T, decltype(std::cbegin(std::declval<Range_t>())), isDynamic>;
| ^

/home/sajid/Downloads/root/include/ROOT/RRangeCast.hxx:145:4: error: ‘const_iterator’ does not name a type
145 | const_iterator begin() const { return std::cbegin(fInputRange); }
| ^~~~~~~~~~~~~~
/home/sajid/Downloads/root/include/ROOT/RRangeCast.hxx:146:4: error: ‘const_iterator’ does not name a type
146 | const_iterator end() const { return std::cend(fInputRange); }
| ^~~~~~~~~~~~~~
In file included from /home/sajid/Downloads/root/include/TTree.h:38,
from /home/sajid/Downloads/crmc-crmc.v1.8.0/src/OutputPolicyROOT.cc:6:
/home/sajid/Downloads/root/include/TDirectory.h:271:16: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type
271 | inline std::enable_if_t<!std::is_base_of<TObject, T>::value, Int_t>
| ^~~~~~~~~~~

Please read tips for efficient and successful posting and posting code

Please fill also the fields below. Note that root -b -q will tell you this info, and starting from 6.28/06 upwards, you can call .forum bug from the ROOT prompt to pre-populate a topic.

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


Hi,

This seems related to your setup and not ROOT.
Maybe, and this comes from a quick read of your errors, it could be that you have to specify c++14 as standard to build your stack.

Best,
Danilo