Disable move and copy semantic for the counters
As they auto register to the Hub, move/copy semantic is dangerous in that it can invalidate the pointers kept in the Hub.
There are mainly 2 consequences for users of Counters :
- postfix operator ++ is gone for standard counters. One should use the prefix one
- vectors of Counters are no more available. But deque can be used instead
Note that this requires adaptation to the client code, so cannot be merged before this adaptations are merged
Merge request reports
Activity
added bug fix label
mentioned in commit lhcb/Analysis@e8a17a09
changed milestone to %v36r2
assigned to @clemenci
- Resolved by Marco Clemencic
I took the liberty of fixing the formatting.
added all-slots label
- [2021-10-05 00:06] Validation started with lhcb-lcg-dev3#1774
- [2021-10-05 00:17] Validation started with lhcb-lcg-dev4#1791
- [2021-10-05 11:32] Validation started with lhcb-gaudi-head#3056
- [2021-11-16 00:03] Validation started with lhcb-gaudi-head#3091
- [2021-11-16 00:32] Validation started with lhcb-run2-gaudi-head#229
Edited by Software for LHCbmentioned in merge request !1260 (closed)
removed all-slots label
- Resolved by Marco Clemencic
After a discussion with @sponce and @chasse, we agreed that
BufferableCounter( BufferableCounter const& ) = default; BufferableCounter( BufferableCounter&& ) = delete;
is not really what we want... at the very least, the copy constructors should be deleted too.
We also mentioned that we may consider counters to be movable but not copyable, and have a proper implementation of the move constructor.