Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Labels:
-
Story Points:3
-
Epic Link:
-
Sprint:AP F18-1
-
Team:Alert Production
Description
C++11 methods that are declared noexcept enable compilers to streamline code that calls them, in some cases (e.g., STL code) unlocking more efficient algorithms that would be unsafe with throwing methods. These changes are most useful for low-level types, whose methods are also the most likely to be provably non-throwing.
This ticket shall add the noexcept specifier to any methods that are guaranteed not to throw and are unlikely to be modified to throw exceptions in the future (e.g., trivial getters will usually qualify, but methods for which some inputs are invalid will not even if the existing code performs no input validation). Particular attention shall be paid to constructors, assignment operators, and std::swap implementations, as these are the methods where noexcept provides the biggest gains.
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
Attachments
Issue Links
- relates to
-
DM-15043 Broken build in meas_algorithms
- Done
Problems can be spotted using clang-tidy -checks='-*,*noexcept*'.