[Rivet] Building Rivet 2.5.4 with GCC 8.1.1

Wahid eLoad wahid.eload at gmail.com
Fri May 18 15:29:32 BST 2018


Hi,

   While building CMSSW software with GCC 8.1.1, we get following build 
errors and warnings. Note that we are using River 2.5.4 on CentOS 7. Can 
we get a fix for these?

Thanks,

--Shahzad

[a]  I guess here it is missing just the virtual destructor for 
BoolParticleBaseFunctor?

.../rivet/2.5.4/include/Rivet/Tools/ParticleBaseUtils.hh:23:10: warning: 
'struct Rivet::BoolParticleBaseFunctor' has virtual functions and 
accessible non-virtual destructor [-Wnon-virtual-dtor]
    struct BoolParticleBaseFunctor {
           ^~~~~~~~~~~~~~~~~~~~~~~
.../rivet/2.5.4/include/Rivet/Tools/ParticleBaseUtils.hh:29:10: warning: 
base class 'struct Rivet::BoolParticleBaseFunctor' has accessible 
non-virtual destructor [-Wnon-virtual-dtor]
    struct PtGtr : public BoolParticleBaseFunctor {
           ^~~~~
.../rivet/2.5.4/include/Rivet/Tools/ParticleBaseUtils.hh:29:10: warning: 
'struct Rivet::PtGtr' has virtual functions and accessible non-virtual 
destructor [-Wnon-virtual-dtor]
.../rivet/2.5.4/include/Rivet/Tools/ParticleBaseUtils.hh:38:10: warning: 
base class 'struct Rivet::BoolParticleBaseFunctor' has accessible 
non-virtual destructor [-Wnon-virtual-dtor]
    struct PtLess : public BoolParticleBaseFunctor {


[b] I think here you just need to make "CmpAnaHandle::operator()....." const

from/CMSSW_10_2_X_2018-05-15-2300/src/GeneratorInterface/RivetInterface/interface/RivetAnalyzer.h:4,

                  from 
/CMSSW_10_2_X_2018-05-15-2300/src/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc:1:
.../gcc/8.1.0/include/c++/8.1.1/bits/stl_tree.h: In instantiation of 
'class std::_Rb_tree<std::shared_ptr<Rivet::Analysis>, 
std::shared_ptr<Rivet::Analysis>, 
std::_Identity<std::shared_ptr<Rivet::Analysis> >, Rivet::CmpAnaHandle, 
std::allocator<std::shared_ptr<Rivet::Analysis> > >':
.../gcc/8.1.0/include/c++/8.1.1/bits/stl_set.h:133:17:   required from 
'class std::set<std::shared_ptr<Rivet::Analysis>, Rivet::CmpAnaHandle>'
.../rivet/2.5.4/include/Rivet/AnalysisHandler.hh:197:34: required from here
.../gcc/8.1.0/include/c++/8.1.1/bits/stl_tree.h:457:21: error: static 
assertion failed: comparison object must be invocable as const
        static_assert(is_invocable_v<const _Compare&, const _Key&, const 
_Key&>,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



More information about the Rivet mailing list