Fixes for gcc 13, clang 16 and C++20
- Fix warning about implicit capture of
this
(deprecated in C++20) - Hide
maybe-uninitialized
warnings from ROOT dictionaries - Remove unused variables
- Fix implicit copy constructor/assignment deprecation warning
- Avoid warning: ittptmark64.o: missing .note.GNU-stack section implies executable stack
- Avoid ambiguity in
NamedRange_{} == NamedRange_{}
About the warnings from the dictionaries, I managed to produce a test case that show how the warning pops up: https://godbolt.org/z/je7dE3vr1
The problem only appears with the optimization level -Og
(used by LHCb in debug builds), so I'm not too worried. In any case I'll report the issue to ROOT ASAP.
Without NamedRange_::operator==
, in the comparison between two NamedRange_
instances
nr1
and nr2
C++20 would not be able to choose between
(Range_&)nr1 == nr2
and (Range_&)nr2 == nr1
.
Edited by Marco Clemencic