Fixes for gcc 13, clang 16 and C++20
- Fix warning about implicit capture of
this(deprecated in C++20) - Hide
maybe-uninitializedwarnings 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