Pull Request №692 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/refactor/utility-iterator-rule-of-zero
Merge: 80efd178b93d19b7cb76d9a0b34788104381afaa←b82b5545627e8bddf859f1c268b8e341296c449a
Apply Rule of Zero across utility/ helpers
----------------
Merge commit message:
Apply Rule of Zero across utility/ helpers
Remove user-declared destructors and trivial copy ctor/assignment
implementations whose bodies are equivalent to the compiler-generated
defaults. The implicit special members are correct in every case:
* utility/DereferenceIterator.hh: empty user dtor.
* utility/graph/ArrayPool.hh (Array0): empty dtor plus member-wise
copy ctor and self-assignment-guarded copy assignment.
* utility/graph/Graph.hh / Digraph.hh: empty dtor and = default /
member-wise copy ops on EdgeListElement, EdgeListIterator,
EdgeListConstIterator and the Directed* counterparts (non-owning
raw pointers, default copy is correct).
* utility/graph/LowMemGraph.hh (LowMemGraphBase): empty override dtor;
base utility::VirtualBase already supplies a virtual destructor.
* utility/graph/UpperEdgeGraph.hh: empty UEEdge dtor and the
~UpperEdgeGraph() override = default declaration.
* utility/options/{Boolean,File,Integer,Real}Option(.hh) and their
*VectorOption.hh counterparts: empty ~XxxOption() override {}; the
base option classes' virtual destructors are still inherited.