Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Labels:
-
Story Points:6
-
Epic Link:
-
Sprint:AP F18-3
-
Team:Alert Production
Description
C++11 allows programmers with more control over how classes are inherited and how methods are overridden. These features allow for safer code, particularly when applied to fundamental data types. They can be retrofitted onto existing code fairly mechanically.
This ticket includes the following changes:
- Declare standalone types final (do not do this for any type that's part of an inheritance hierarchy, even if it appears to be intended as a leaf class).
- Declare methods final only if their existing documentation forbids overriding them.
- Declare overriding methods override.
The classes covered by this ticket are (based on assumed simplicity, and therefore subject to change):
- afw::cameraGeom::CameraPoint
- afw::cameraGeom::CameraSys
- afw::cameraGeom::CameraSysPrefix
- afw::cameraGeom::Orientation
- afw::coord::Coord and its subclasses
- afw::coord::Observatory
- afw::coord::Weather
- afw::detection::Threshold
- afw::geom::Angle
- afw::geom::AngleUnit
- afw::geom::Box
- afw::geom::CoordinateBase and its subclasses
- afw::geom::CoordinateExpr
- afw::geom::Span
- afw::geom::SpherePoint
- afw::geom::polygon::Polygon
- afw::image::Calib
- afw::image::Color
- afw::image::DefectBase
- afw::image::Filter
- afw::image::FilterProperty
- afw::math::FitResults
- afw::math::Function and its subclasses
- afw::math::MaskedVector
- afw::math::Statistics
- afw::table::BaseRecord and its subclasses
- afw::table::ConstFunctorKey
- afw::table::FieldBase and its subclasses
- afw::table::InputFunctorKey and its subclasses
- afw::table::KeyBase and its subclasses
- afw::table::Match
- afw::table::OutputFunctorKey and its subclasses
- afw::table::ReferenceFunctorKey
- afw::table::SchemaItem
- afw::table::io::Persistable
- afw::table::io::PersistableFacade
Adding override should be unneccessary after
DM-13744. The other changes still apply.