-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
There are some undesirable maintainability concerns that #include may discreetly facilitate such as:
- Violation of "Include What You Use"
- "Elephant on a Flea"
Components (header + source) in the C++ driver, particularly those containing public user-facing interfaces, should be reviewed to ensure that none of the conditions above are present:
- Ensure header files include what they use such that a given header file may be #include-ed in an otherwise empty source file without error. Header files deliberately designed to work in this manner are necessarily exempt from this rule.
- Ensure header files for small components (flea) do not transitively include large dependencies (elephant). Instances should be evaluated to see if inclusions can be moved into a corresponding source file.
- is duplicated by
-
CXX-2102 Remove unused and add missing includes
- Closed