C++11 modernization changes
Some trivial - and some not so trivial! - changes which take advantage of C++11...
Merge request reports
Activity
The only concern I have is about commit 7e9d454b (replacement of empty destructors).
In many cases the (virtual) destructors have been moved to the .cpp files to ensure that there was only one implementation of them (instead of several ones reduced to one only at link or load time). Multiple destructor copies imply multiple virtual table copies, which, in some circumstances, break the dynamic_cast.
To be fair:
- we discourage dynamic_cast (even if it is heavily used in several places)
- last time I had a problem was because of a templated class used as a intermediate level in an inheritance tree (very fishy)
- most problems with duplicated symbols may come from Windows, where you need to play with symbol visibility and it may not be trivial to get it right.
So, after all I think your proposal is good.
Added 1 commit:
- a64b913b - Modernize the ParticlePropertySvc / PartPropSvc
Added 1 commit:
- 38edd30c - use cbegin instead of begin
Added 1 commit:
- baec33a7 - Modernize GaudiSvc/src/RndmGenSvc
Added 1 commit:
- 598910fc - Modernize GaudiSvc/src/FileMgr
Added 1 commit:
- 6a3a3e8d - Modernize StreamLogger
Added 1 commit:
- 68a9fca1 - Modernize StreamLogger
Added 1 commit:
- e6e2d4df - Modernize MsgStream
Added 1 commit:
- c53a6da2 - Modernize GaudiAlg/src/components
Added 1 commit:
- 8365349f - replace a number of trivial constructors with = default as gcc 4.8.4 does not cr…
Added 1 commit:
- bdd9ec85 - Modernize GaudiCommonSvc
Please register or sign in to reply