Pull Request №699 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/refactor/lr-energy-container-iterators-rule-of-zero
Merge: 708ccac488292139132ec4853814381fb0bdd6ae←4bf6498bfe1e1ad5d8520a2090d1c5deb6823496
Apply Rule of Zero to remaining LREnergyContainer iterator subclasses
----------------
Merge commit message:
Apply Rule of Zero to remaining LREnergyContainer iterator subclasses
Extends the disulfide-iterator pattern (PR #689) to the four remaining
ResidueNeighbor{,Const}Iterator subclasses:
- DenseNeighbor{,Const}Iterator
- OneToAllNeighbor{,Const}Iterator
- PolymerBondedNeighbor{,Const}Iterator
- CstResNeighb{,Const}Iterator
For each: drop the empty `= default` destructor pair (override decl in .hh,
out-of-line definition in .cc), and replace the pre-C++11 private undefined
copy-assignment with an explicit `= delete` plus a comment explaining that
all assignment must funnel through the polymorphic operator= so derived
state is downcast and copied correctly.
This exhausts the LREnergyContainer iterator family; together with PR #689
all six concrete container's iterator pairs use the same idiom.