JSF AV C++

Perforce QAC for C++ 2026.1

(JSF AV C++ Document Number 2RDU00001 Rev C)

Rule Enforcement Summary

    Total
a Total Number of Rules 233
b Total Number of 'Not Statically Enforceable' Rules (Assisted/Unassisted) 27
c Total Number of Enforceable Rules (a-b) 206
d Total Number of Enforced Rules 184
e Total Number of Unenforced Rules (c-d) 22
f Enforced Rules Percentage (d/c) 89%
g Unenforced Rules Percentage (e/c) 11%

 

Id Description Category Enforced
AV_Rule_1 Any one function (or method) will contain no more than 200 logical source lines of code (L-SLOCs). Will Yes
AV_Rule_3 All functions shall have a cyclomatic complexity number of 20 or less. Shall Yes
AV_Rule_8 All code shall conform to ISO/IEC 14882:2002(E) standard C++. [10] Shall Yes
AV_Rule_9 Only those characters specified in the C++ basic source character set will be used. Will Yes
AV_Rule_10 Values of character types will be restricted to a defined and documented subset of ISO 10646-1. [9] Will No
AV_Rule_11 Trigraphs will not be used. Will Yes
AV_Rule_12 The following digraphs will not be used: '<%', '%>', '<:', ':>', '%:', '%:%:'. Will Yes
AV_Rule_13 Multi-byte characters and wide string literals will not be used. Will Yes
AV_Rule_14 Literal suffixes shall use uppercase rather than lowercase letters. Shall Yes
AV_Rule_16 Only DO-178B level A [15] certifiable or SEAL 1 C/C++ libraries shall be used with safety-critical (i.e. SEAL 1) code [13]. Shall No
AV_Rule_17 The error indicator errno shall not be used. Shall Yes
AV_Rule_18 The macro offsetof, in library <stddef.h>, shall not be used. Shall Yes
AV_Rule_19 <locale.h> and the setlocale function shall not be used. Shall Yes
AV_Rule_20 The setjmp macro and the longjmp function shall not be used. Shall Yes
AV_Rule_21 The signal handling facilities of <signal.h> shall not be used. Shall Yes
AV_Rule_22 The input/output library <stdio.h> shall not be used. Shall Yes
AV_Rule_23 The library functions atof, atoi and atol from library <stdlib.h> shall not be used. Shall Yes
AV_Rule_24 The library functions abort, exit, getenv and system from library <stdlib.h> shall not be used. Shall Yes
AV_Rule_25 The time handling functions of library <time.h> shall not be used. Shall Yes
AV_Rule_26 Only the following pre-processor directives shall be used: - #ifndef - #define - #endif - #include Shall Yes
AV_Rule_27 #ifndef, #define and #endif will be used to prevent multiple inclusions of the same header file. Other techniques to prevent the multiple inclusions of header files will not be used. Will Yes
AV_Rule_28 The #ifndef and #endif pre-processor directives will only be used as defined in AV Rule 27 to prevent multiple inclusions of the same header file. Will Yes
AV_Rule_29 The #define pre-processor directive shall not be used to create inline macros. Inline functions shall be used instead. Shall Yes
AV_Rule_30 The #define pre-processor directive shall not be used to define constant values. Instead, the const qualifier shall be applied to variable declarations to specify constant values. Shall Yes
AV_Rule_31 The #define pre-processor directive will only be used as part of the technique to prevent multiple inclusions of the same header file. Will Yes
AV_Rule_32 The #include pre-processor directive will only be used to include header (*.h) files. Will Yes
AV_Rule_33 The #include directive shall use the <filename.h> notation to include header files. Shall Yes
AV_Rule_35 A header file will contain a mechanism that prevents multiple inclusions of itself. Will Yes
AV_Rule_36 Compilation dependencies should be minimized when possible. Should Yes
AV_Rule_37 Header (include) files should include only those header files that are required for them to successfully compile. Files that are only used by the associated .cpp file should be placed in the .cpp file-not the .h file. Should Yes
AV_Rule_38 Declarations of classes that are only accessed via pointers (*) or references (&) should be supplied by forward headers that contain only forward declarations. Should Yes
AV_Rule_39 Header files (*.h) will not contain non-const variable definitions or function definitions. Will Yes
AV_Rule_40 Every implementation file shall include the header files that uniquely define the inline functions, types, and templates used. Shall Yes
AV_Rule_41 Source lines will be kept to a length of 120 characters or less. Will Yes
AV_Rule_42 Each expression-statement will be on a separate line. Will Yes
AV_Rule_43 Tabs should be avoided. Should Yes
AV_Rule_44 All indentations will be at least two spaces and be consistent within the same source file. Will Yes
AV_Rule_45 All words in an identifier will be separated by the '_' character. Will No
AV_Rule_46 User-specified identifiers (internal and external) will not rely on significance of more than 64 characters. Will Yes
AV_Rule_47 Identifiers will not begin with the underscore character '_'. Will Yes
AV_Rule_48 Identifiers will not differ by: - Only a mixture of case - The presence/absence of the underscore character - The interchange of the letter 'O', with the number '0' or the letter 'D' - The interchange of the letter 'I', with the number '1' or the letter 'l' - The interchange of the letter 'S' with the number '5' - The interchange of the letter 'Z' with the number 2 - The interchange of the letter 'n' with the letter 'h'. Will Yes
AV_Rule_49 All acronyms in an identifier will be composed of uppercase letters. Will No
AV_Rule_50 The first word of the name of a class, structure, namespace, enumeration, or type created with typedef will begin with an uppercase letter. All others letters will be lowercase. Will Yes
AV_Rule_51 All letters contained in function and variable names will be composed entirely of lowercase letters. Will Yes
AV_Rule_52 Identifiers for constant and enumerator values shall be lowercase. Shall Yes
AV_Rule_53 Header files will always have a file name extension of ".h". Will Yes
AV_Rule_53.1 The following character sequences shall not appear in header file names: ', \, /*, //, or ". Shall Yes
AV_Rule_54 Implementation files will always have a file name extension of ".cpp". Will Yes
AV_Rule_56 The name of an implementation file should reflect the logical entity for which it provides definitions and have a ".cpp" extension (this name will normally be identical to the header file that provides the corresponding declarations.) Should Yes
AV_Rule_57 The public, protected, and private sections of a class will be declared in that order (the public section is declared before the protected section which is declared before the private section). Will Yes
AV_Rule_58 When declaring and defining functions with more than two parameters, the leading parenthesis and the first argument will be written on the same line as the function name. Each additional argument will be written on a separate line (with the closing parenthesis directly after the last argument). Will Yes
AV_Rule_59 The statements forming the body of an if, else if, else, while, do...while or for statement shall always be enclosed in braces, even if the braces form an empty block. Shall Yes
AV_Rule_60 Braces ("{}") which enclose a block will be placed in the same column, on separate lines directly before and after the block. Will Yes
AV_Rule_61 Braces ("{}") which enclose a block will have nothing else on the line except comments (if necessary). Will Yes
AV_Rule_62 The dereference operator '*' and the address-of operator '&' will be directly connected with the type-specifier. Will Yes
AV_Rule_63 Spaces will not be used around '.' or '->', nor between unary operators and operands. Will Yes
AV_Rule_65 A structure should be used to model an entity that does not require an invariant. Should No
AV_Rule_66 A class should be used to model an entity that maintains an invariant. Should No
AV_Rule_67 Public and protected data should only be used in structs - not classes. Should Yes
AV_Rule_68 Unneeded implicitly generated member functions shall be explicitly disallowed. Shall Yes
AV_Rule_69 A member function that does not affect the state of an object (its instance variables) will be declared const. Will Yes
AV_Rule_70 A class will have friends only when a function or object requires access to the private elements of the class, but is unable to be a member of the class for logical or efficiency reasons. Will No
AV_Rule_70.1 An object shall not be improperly used before its lifetime begins or after its lifetime ends. Shall No
AV_Rule_71 Calls to an externally visible operation of an object, other than its constructors, shall not be allowed until the object has been fully initialized. Shall Yes
AV_Rule_71.1 A class's virtual functions shall not be invoked from its destructor or any of its constructors. Shall Yes
AV_Rule_72 The invariant for a class should be: - a part of the postcondition of every class constructor, - a part of the precondition of the class destructor (if any), - a part of the precondition and postcondition of every other publicly accessible operation. Should No
AV_Rule_73 Unnecessary default constructors shall not be defined. Shall Yes
AV_Rule_74 Initialization of nonstatic class members will be performed through the member initialization list rather than through assignment in the body of a constructor. Will Yes
AV_Rule_75 Members of the initialization list shall be listed in the order in which they are declared in the class. Shall Yes
AV_Rule_76 A copy constructor and an assignment operator shall be declared for classes that contain pointers to data items or nontrivial destructors. Shall Yes
AV_Rule_77 A copy constructor shall copy all data members and bases that affect the class invariant (a data element representing a cache, for example, would not need to be copied). Shall Yes
AV_Rule_77.1 The definition of a member function shall not contain default arguments that produce a signature identical to that of the implicitly-declared copy constructor for the corresponding class/structure. Shall Yes
AV_Rule_78 All base classes with a virtual function shall define a virtual destructor. Shall Yes
AV_Rule_79 All resources acquired by a class shall be released by the class's destructor. Shall Yes
AV_Rule_80 The default copy and assignment operators will be used for classes when those operators offer reasonable semantics. Will Yes
AV_Rule_81 The assignment operator shall handle self-assignment correctly. Shall Yes
AV_Rule_82 An assignment operator shall return a reference to *this. Shall Yes
AV_Rule_83 An assignment operator shall assign all data members and bases that affect the class invariant (a data element representing a cache, for example, would not need to be copied). Shall Yes
AV_Rule_84 Operator overloading will be used sparingly and in a conventional manner. Will Yes
AV_Rule_85 When two operators are opposites (such as == and !=), both will be defined and one will be defined in terms of the other. Will Yes
AV_Rule_87 Hierarchies should be based on abstract classes. Should Yes
AV_Rule_88 Multiple inheritance shall only be allowed in the following restricted form: n interfaces plus m private implementations, plus at most one protected implementation. Shall Yes
AV_Rule_88.1 A stateful virtual base shall be explicitly declared in each derived class that accesses it. Shall Yes
AV_Rule_89 A base class shall not be both virtual and non-virtual in the same hierarchy. Shall Yes
AV_Rule_91 Public inheritance will be used to implement "is-a" relationships. Will Yes
AV_Rule_93 "has-a" or "is-implemented-in-terms-of" relationships will be modeled through membership or non-public inheritance. Will Yes
AV_Rule_94 An inherited nonvirtual function shall not be redefined in a derived class. Shall Yes
AV_Rule_95 An inherited default parameter shall never be redefined. Shall Yes
AV_Rule_96 Arrays shall not be treated polymorphically. Shall Yes
AV_Rule_97 Arrays shall not be used in interfaces. Instead, the Array class should be used. Shall Yes
AV_Rule_97.1 Neither operand of an equality operator (== or !=) shall be a pointer to a virtual member function. Shall Yes
AV_Rule_98 Every nonlocal name, except main(), should be placed in some namespace. Should Yes
AV_Rule_99 Namespaces will not be nested more than two levels deep. Will Yes
AV_Rule_100 Elements from a namespace should be selected as follows: - using declaration or explicit qualification for few (approximately five) names, - using directive for many names. Should No
AV_Rule_103 Constraint checks should be applied to template arguments. Should No
AV_Rule_104 A template specialization shall be declared before its use. Shall Yes
AV_Rule_105 A template definition's dependence on its instantiation contexts should be minimized. Should No
AV_Rule_106 Specializations for pointer types should be made where appropriate. Should No
AV_Rule_107 Functions shall always be declared at file scope. Shall Yes
AV_Rule_108 Functions with variable numbers of arguments shall not be used. Shall Yes
AV_Rule_109 A function definition should not be placed in a class specification unless the function is intended to be inlined. Should Yes
AV_Rule_110 Functions with more than 7 arguments will not be used. Will Yes
AV_Rule_111 A function shall not return a pointer or reference to a non-static local object. Shall Yes
AV_Rule_112 Function return values should not obscure resource ownership. Should Yes
AV_Rule_113 Functions will have a single exit point. Will Yes
AV_Rule_114 All exit points of value-returning functions shall be through return statements. Shall Yes
AV_Rule_115 If a function returns error information, then that error information will be tested. Will No
AV_Rule_116 Small, concrete-type arguments (two or three words in size) should be passed by value if changes made to formal parameters should not be reflected in the calling function. Should Yes
AV_Rule_117 Arguments should be passed by reference if NULL values are not possible. Should Yes
AV_Rule_117.1 An object should be passed as const T& if the function should not change the value of the object. Should Yes
AV_Rule_117.2 An object should be passed as T& if the function may change the value of the object. Should Yes
AV_Rule_118 Arguments should be passed via pointers if NULL values are possible. Should Yes
AV_Rule_118.1 An object should be passed as const T* if its value should not be modified. Should Yes
AV_Rule_118.2 An object should be passed as T* if its value may be modified. Should Yes
AV_Rule_119 Functions shall not call themselves, either directly or indirectly (i.e. recursion shall not be allowed). Shall Yes
AV_Rule_121 Only functions with 1 or 2 statements should be considered candidates for inline functions. Should Yes
AV_Rule_122 Trivial accessor and mutator functions should be inlined. Should Yes
AV_Rule_123 The number of accessor and mutator functions should be minimized. Should Yes
AV_Rule_124 Trivial forwarding functions should be inlined. Should Yes
AV_Rule_125 Unnecessary temporary objects should be avoided. Should No
AV_Rule_126 Only valid C++ style comments (//) shall be used. Shall Yes
AV_Rule_127 Code that is not used (commented out) shall be deleted. Shall Yes
AV_Rule_130 The purpose of every line of executable code should be explained by a comment, although one comment may describe more than one line of code. Should Yes
AV_Rule_132 Each variable declaration, typedef, enumeration value, and structure member will be commented. Will Yes
AV_Rule_133 Every source file will be documented with an introductory comment that provides information on the file name, its contents, and any program-required information (e.g. legal statements, copyright information, etc). Will Yes
AV_Rule_135 Identifiers in an inner scope shall not use the same name as an identifier in an outer scope, and therefore hide that identifier. Shall Yes
AV_Rule_136 Declarations should be at the smallest feasible scope. (See also AV Rule 143). Should Yes
AV_Rule_137 All declarations at file scope should be static where possible. Should Yes
AV_Rule_138 Identifiers shall not simultaneously have both internal and external linkage in the same translation unit. Shall Yes
AV_Rule_139 External objects will not be declared in more than one file. Will Yes
AV_Rule_140 The register storage class specifier shall not be used. Shall Yes
AV_Rule_141 A class, structure, or enumeration will not be declared in the definition of its type. Will Yes
AV_Rule_142 All variables shall be initialized before use. Shall Yes
AV_Rule_143 Variables will not be introduced until they can be initialized with meaningful values. Will Yes
AV_Rule_144 Braces shall be used to indicate and match the structure in the non-zero initialization of arrays and structures. Shall Yes
AV_Rule_145 In an enumerator list, the '=' construct shall not be used to explicitly initialize members other than the first, unless all items are explicitly initialized. Shall Yes
AV_Rule_147 The underlying bit representations of floating point numbers shall not be used in any way by the programmer. Shall Yes
AV_Rule_148 Enumeration types shall be used instead of integer types (and constants) to select from a limited series of choices. Shall Yes
AV_Rule_149 Octal constants (other than zero) shall not be used. Shall Yes
AV_Rule_150 Hexadecimal constants will be represented using all uppercase letters. Will Yes
AV_Rule_151 Numeric values in code will not be used; symbolic values will be used instead. Will Yes
AV_Rule_151.1 A string literal shall not be modified. Shall Yes
AV_Rule_152 Multiple variable declarations shall not be allowed on the same line. Shall Yes
AV_Rule_153 Unions shall not be used. Shall Yes
AV_Rule_154 Bit-fields shall have explicitly unsigned integral or enumeration types only. Shall Yes
AV_Rule_155 Bit-fields will not be used to pack data into a word for the sole purpose of saving space. Will Yes
AV_Rule_156 All the members of a structure (or class) shall be named and shall only be accessed via their names. Shall Yes
AV_Rule_157 The right hand operand of a && or || operator shall not contain side effects. Shall Yes
AV_Rule_158 The operands of a logical && or || shall be parenthesized if the operands contain binary operators. Shall Yes
AV_Rule_159 Operators ||, &&, and unary & shall not be overloaded. Shall Yes
AV_Rule_160 An assignment expression shall be used only as the expression in an expression statement. Shall Yes
AV_Rule_162 Signed and unsigned values shall not be mixed in arithmetic or comparison operations. Shall Yes
AV_Rule_163 Unsigned arithmetic shall not be used. Shall Yes
AV_Rule_164 The right hand operand of a shift operator shall lie between zero and one less than the width in bits of the left-hand operand (inclusive). Shall Yes
AV_Rule_164.1 The left-hand operand of a right-shift operator shall not have a negative value. Shall Yes
AV_Rule_165 The unary minus operator shall not be applied to an unsigned expression. Shall Yes
AV_Rule_166 The sizeof operator will not be used on expressions that contain side effects. Will Yes
AV_Rule_168 The comma operator shall not be used. Shall Yes
AV_Rule_169 Pointers to pointers should be avoided when possible. Should Yes
AV_Rule_170 More than 2 levels of pointer indirection shall not be used. Shall Yes
AV_Rule_171 Relational operators shall not be applied to pointer types except where both operands are of the same type and point to: - the same object, - the same function, - members of the same object, or - elements of the same array (including one past the end of the same array). Shall No
AV_Rule_173 The address of an object with automatic storage shall not be assigned to an object which persists after the object has ceased to exist. Shall Yes
AV_Rule_174 The null pointer shall not be de-referenced. Shall No
AV_Rule_175 A pointer shall not be compared to NULL or be assigned NULL; use plain 0 instead. Shall Yes
AV_Rule_176 A typedef will be used to simplify program syntax when declaring function pointers. Will Yes
AV_Rule_177 User-defined conversion functions should be avoided. Should Yes
AV_Rule_178 Down casting (casting from base to derived class) shall only be allowed through one of the following mechanisms: - Virtual functions that act like dynamic casts (most likely useful in relatively simple cases) - Use of the visitor (or similar) pattern (most likely useful in complicated cases) Shall Yes
AV_Rule_179 A pointer to a virtual base class shall not be converted to a pointer to a derived class. Shall Yes
AV_Rule_180 Implicit conversions that may result in a loss of information shall not be used. Shall Yes
AV_Rule_181 Redundant explicit casts will not be used. Will Yes
AV_Rule_182 Type casting from any type to or from pointers shall not be used. Shall Yes
AV_Rule_183 Every possible measure should be taken to avoid type casting. Should Yes
AV_Rule_184 Floating point numbers shall not be converted to integers unless such a conversion is a specified algorithmic requirement or is necessary for a hardware interface. Shall Yes
AV_Rule_185 C++ style casts (const_cast, reinterpret_cast, and static_cast) shall be used instead of the traditional C-style casts. Shall Yes
AV_Rule_186 There shall be no unreachable code. Shall No
AV_Rule_187 All non-null statements shall potentially have a side-effect. Shall Yes
AV_Rule_188 Labels will not be used, except in switch statements. Will Yes
AV_Rule_189 The goto statement shall not be used. Shall Yes
AV_Rule_190 The continue statement shall not be used. Shall Yes
AV_Rule_191 The break statement shall not be used (except to terminate the cases of a switch statement). Shall Yes
AV_Rule_192 All if, else if constructs will contain either a final else clause or a comment indicating why a final else clause is not necessary. Will Yes
AV_Rule_193 Every non-empty case clause in a switch statement shall be terminated with a break statement. Shall Yes
AV_Rule_194 All switch statements that do not intend to test for every enumeration value shall contain a final default clause. Shall Yes
AV_Rule_195 A switch expression will not represent a Boolean value. Will Yes
AV_Rule_196 Every switch statement will have at least two cases and a potential default. Will Yes
AV_Rule_197 Floating point variables shall not be used as loop counters. Shall Yes
AV_Rule_198 The initialization expression in a for loop will perform no actions other than to initialize the value of a single for loop parameter. Will Yes
AV_Rule_199 The increment expression in a for loop will perform no action other than to change a single loop parameter to the next value for the loop. Will Yes
AV_Rule_200 Null initialize or increment expressions in for loops will not be used; a while loop will be used instead. Will Yes
AV_Rule_201 Numeric variables being used within a for loop for iteration counting shall not be modified in the body of the loop. Shall Yes
AV_Rule_202 Floating point variables shall not be tested for exact equality or inequality. Shall Yes
AV_Rule_203 Evaluation of expressions shall not lead to overflow/underflow (unless required algorithmically and then should be heavily documented). Shall No
AV_Rule_204 A single operation with side-effects will only be used in the following contexts: - by itself - the right-hand side of an assignment - a condition - the only argument expression with a side-effect in a function call - condition of a loop - switch condition - single part of a chained operation. Shall Yes
AV_Rule_204.1 The value of an expression shall be the same under any order of evaluation that the standard permits. Shall Yes
AV_Rule_205 The volatile keyword shall not be used unless directly interfacing with hardware. Shall Yes
AV_Rule_206 Allocation/deallocation from/to the free store (heap) shall not occur after initialization. Shall No
AV_Rule_207 Unencapsulated global data will be avoided. Will Yes
AV_Rule_208 C++ exceptions shall not be used (i.e. throw, catch and try shall not be used.) Shall Yes
AV_Rule_209 The basic types of int, short, long, float and double shall not be used, but specific-length equivalents should be typedef'd accordingly for each compiler, and these type names used in the code. Shall Yes
AV_Rule_210 Algorithms shall not make assumptions concerning how data is represented in memory (e.g. big endian vs. little endian, base class subobject ordering in derived classes, nonstatic data member ordering across access specifiers, etc.) Shall Yes
AV_Rule_210.1 Algorithms shall not make assumptions concerning the order of allocation of nonstatic data members separated by an access specifier. See also AV Rule 210 on data representation. Shall Yes
AV_Rule_212 Underflow or overflow functioning shall not be depended on in any special way. Shall No
AV_Rule_213 No dependence shall be placed on C++'s operator precedence rules, below arithmetic operators, in expressions. Shall Yes
AV_Rule_214 Assuming that non-local static objects, in separate translation units, are initialized in a special order shall not be done. Shall Yes
AV_Rule_215 Pointer arithmetic will not be used. Will Yes
AV_Rule_217 Compile-time and link-time errors should be preferred over run-time errors. Should No

Not Statically Enforceable Rules

Id Description Assisted
AV_Rule_2 There shall not be any self-modifying code. Unassisted
AV_Rule_4 To break a "should" rule, the following approval must be received by the developer: approval from the software engineering lead (obtained by the unit approval in the developmental CM tool). Unassisted
AV_Rule_5 To break a "will" or a "shall" rule, the following approvals must be received by the developer: - approval from the software engineering lead (obtained by the unit approval in the developmental CM tool) - approval from the software product manager (obtained by the unit approval in the developmental CM tool). Unassisted
AV_Rule_6 Each deviation from a "shall" rule shall be documented in the file that contains the deviation). Deviations from this rule shall not be allowed, AV Rule 5 notwithstanding. Unassisted
AV_Rule_7 Approval will not be required for a deviation from a "shall" or "will" rule that complies with an exception specified by that rule. Unassisted
AV_Rule_15 Provision shall be made for run-time checking (defensive programming). Unassisted
AV_Rule_34 Header files should contain logically related declarations only. Unassisted
AV_Rule_55 The name of a header file should reflect the logical entity for which it provides declarations. Unassisted
AV_Rule_64 A class interface should be complete and minimal. Unassisted
AV_Rule_86 Concrete types should be used to represent simple independent concepts. Unassisted
AV_Rule_90 Heavily used interfaces should be minimal, general and abstract. Unassisted
AV_Rule_92 A subtype (publicly derived classes) will conform to the following guidelines with respect to all classes involved in the polymorphic assignment of different subclass instances to the same variable or parameter during the execution of the system: - Preconditions of derived methods must be at least as weak as the preconditions of the methods they override. - Postconditions of derived methods must be at least as strong as the postconditions of the methods they override. Unassisted
AV_Rule_101 Templates shall be reviewed as follows: 1. with respect to the template in isolation considering assumptions or requirements placed on its arguments. 2. with respect to all functions instantiated by actual arguments. Unassisted
AV_Rule_102 Template tests shall be created to cover all actual template instantiations. Unassisted
AV_Rule_120 Overloaded operations or methods should form families that use the same semantics, share the same name, have the same purpose, and that are differentiated by formal parameters. Unassisted
AV_Rule_128 Comments that document actions or sources (e.g. tables, figures, paragraphs, etc.) outside of the file being documented will not be allowed. Unassisted
AV_Rule_129 Comments in header files should describe the externally visible behavior of the functions or classes being documented. Unassisted
AV_Rule_131 One should avoid stating in comments what is better stated in code (i.e. do not simply repeat what is in the code). Unassisted
AV_Rule_134 Assumptions (limitations) made by functions should be documented in the function's preamble. Unassisted
AV_Rule_146 Floating point implementations shall comply with a defined floating point standard. The standard that will be used is the ANSI/IEEE Std 754 [1]. Unassisted
AV_Rule_167 The implementation of integer division in the chosen compiler shall be determined, documented and taken into account. Unassisted
AV_Rule_211 Algorithms shall not assume that shorts, ints, longs, floats, doubles or long doubles begin at particular addresses. Unassisted
AV_Rule_216 Programmers should not attempt to prematurely optimize code. Unassisted
AV_Rule_218 Compiler warning levels will be set in compliance with project policies. Unassisted
AV_Rule_219 All tests applied to a base class interface shall be applied to all derived class interfaces as well. If the derived class poses stronger postconditions/invariants, then the new postconditions /invariants shall be substituted in the derived class tests. Unassisted
AV_Rule_220 Structural coverage algorithms shall be applied against flattened classes. Unassisted
AV_Rule_221 Structural coverage of a class within an inheritance hierarchy containing virtual functions shall include testing every possible resolution for each set of identical polymorphic references. Unassisted