> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codeant.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# MISRA-CPP-2023

<AccordionGroup>
  <Accordion title="misra-cpp2023-5.7.2">
    <div class="paragraph">
      <p>Sections of code should not be "commented out".</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.0.1">
    <div class="paragraph">
      <p>A function shall not contain unreachable statements.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.0.2">
    <div class="paragraph">
      <p>Controlling expressions should not be invariant.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.1.1">
    <div class="paragraph">
      <p>A value should not be unnecessarily written to a local object.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.1.2">
    <div class="paragraph">
      <p>The value returned by a function shall be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.2.1">
    <div class="paragraph">
      <p>Variables with limited visibility should be used at least once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.2.2">
    <div class="paragraph">
      <p>A named function parameter shall be used at least once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.2.3">
    <div class="paragraph">
      <p>Types with limited visibility should be used at least once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-0.2.4">
    <div class="paragraph">
      <p>Functions with limited visibility should be used at least once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-4.1.1">
    <div class="paragraph">
      <p>A program shall conform to ISO/IEC 14882:2017 (C++17).</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-4.1.2">
    <div class="paragraph">
      <p>Deprecated features should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-4.1.3">
    <div class="paragraph">
      <p>Deprecated features should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-4.6.1">
    <div class="paragraph">
      <p>Operations on a memory location shall be sequenced appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.0.1">
    <div class="paragraph">
      <p>Trigraph-like sequences should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.7.1">
    <div class="paragraph">
      <p>The character sequence /\* shall not be used within a C-style comment.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.7.3">
    <div class="paragraph">
      <p>Line-splicing shall not be used in // comments.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.10.1">
    <div class="paragraph">
      <p>User-defined identifiers shall have an appropriate form.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.1">
    <div class="paragraph">
      <p>Within character literals and non raw-string literals,\ shall only be used form a defined escape sequence or universal character name.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.2">
    <div class="paragraph">
      <p>Octal escape sequences, hexadecimal escape sequences and universal character names shall be terminated.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.3">
    <div class="paragraph">
      <p>Octal constants shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.4">
    <div class="paragraph">
      <p>Unsigned integer literals shall be appropriately suffixed.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.5">
    <div class="paragraph">
      <p>The lowercase form of L shall not be used as the first character in a literal suffix.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.6">
    <div class="paragraph">
      <p>An integer-literal of type long long shall not use a single L or l in any suffix.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-5.13.7">
    <div class="paragraph">
      <p>String literals with different encoding prefixes shall not be concatenated.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.0.1">
    <div class="paragraph">
      <p>Block scope declarations shall not be visually ambiguous.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.0.2">
    <div class="paragraph">
      <p>When an array with external linkage is declared, its size should be explicitly specified.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.0.3">
    <div class="paragraph">
      <p>The only declarations in the global namespace should be main, namespace declarations and extern "C" declarations.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.0.4">
    <div class="paragraph">
      <p>The identifier main shall not be used for a function other than the global function main.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.2.1">
    <div class="paragraph">
      <p>The one-definition rule shall not be violated.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.2.2">
    <div class="paragraph">
      <p>All declarations of a variable or function shall have the same type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.2.3">
    <div class="paragraph">
      <p>The source code used to implement an entity shall appear only once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.2.4">
    <div class="paragraph">
      <p>A header file shall not contain definitions of functions or objects that are non-inline and have external linkage.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.4.1">
    <div class="paragraph">
      <p>A variable declared in an inner scope shall not hide a variable declared in an outer scope.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.4.2">
    <div class="paragraph">
      <p>Derived classes shall not conceal functions that are inherited from their bases.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.4.3">
    <div class="paragraph">
      <p>A name that is present in a dependent base shall not be resolved by unqualified lookup.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.5.1">
    <div class="paragraph">
      <p>A function or object with external linkage should be introduced in a header file.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.5.2">
    <div class="paragraph">
      <p>Internal linkage should be specified appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.7.1">
    <div class="paragraph">
      <p>Local variables shall not have static storage duration.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.7.2">
    <div class="paragraph">
      <p>Global variables shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.8.1">
    <div class="paragraph">
      <p>An object shall not be accessed outside of its lifetime.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.8.2">
    <div class="paragraph">
      <p>A function must not return a reference or a pointer to a local variable with automatic storage duration.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.8.3">
    <div class="paragraph">
      <p>An assignment operator shall not assign the address of an object with automatic storage duration to an object with a greater lifetime.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.8.4">
    <div class="paragraph">
      <p>Member functions returning references to their object should be ref-qualified appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.9.1">
    <div class="paragraph">
      <p>The same type aliases shall be used in all declarations of the same entity.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-6.9.2">
    <div class="paragraph">
      <p>The names of the standard signed integer types and standard unsigned integer types should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.1">
    <div class="paragraph">
      <p>There shall be no conversion from type bool.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.2">
    <div class="paragraph">
      <p>There shall be no conversion to type bool.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.3">
    <div class="paragraph">
      <p>The numerical value of a character shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.4">
    <div class="paragraph">
      <p>The operands of bitwise operators and shift operators shall be appropriate.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.5">
    <div class="paragraph">
      <p>Integral promotion and the usual arithmetic conversions shall not change the signedness or the type category of an operand.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.0.6">
    <div class="paragraph">
      <p>Assignment between numeric types shall be appropriate.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.11.1">
    <div class="paragraph">
      <p>nullptr shall be the only form of the null-pointer-constant.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.11.2">
    <div class="paragraph">
      <p>An array passed as a function argument shall not decay to a pointer.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-7.11.3">
    <div class="paragraph">
      <p>A conversion from function type to pointer-to-function type shall only occur in appropriate contexts.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.0.1">
    <div class="paragraph">
      <p>Parentheses should be used to make the meaning of an expression appropriately explicit.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.1.1">
    <div class="paragraph">
      <p>A non-transient lambda shall not implicitly capture this.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.1.2">
    <div class="paragraph">
      <p>Variables should be captured explicitly in a non-transient lambda.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.1">
    <div class="paragraph">
      <p>A virtual base class shall only be cast to a derived class by means of dynamic\_cast.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.2">
    <div class="paragraph">
      <p>C-style casts and functional notation casts shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.3">
    <div class="paragraph">
      <p>A cast shall not remove any const or volatile qualification from the type accessed via a pointer or by reference.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.4">
    <div class="paragraph">
      <p>Casts shall not be performed between a pointer to a function and any other type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.5">
    <div class="paragraph">
      <p>reinterpret\_cast shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.6">
    <div class="paragraph">
      <p>An object with integral, enumerated, or pointer to void type shall not be cast to a pointer type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.7">
    <div class="paragraph">
      <p>A cast should not convert a pointer type to an integral type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.8">
    <div class="paragraph">
      <p>An object pointer type shall not be cast to an integral type other than std::uintptr\_t or std::intptr\_t.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.9">
    <div class="paragraph">
      <p>The operand to typeid shall not be an expression of polymorphic class type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.10">
    <div class="paragraph">
      <p>Functions shall not call themselves, either directly or indirectly.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.2.11">
    <div class="paragraph">
      <p>An argument passed via ellipsis shall have an appropriate type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.3.1">
    <div class="paragraph">
      <p>The built-in unary - operator should not be applied to an expression of unsigned type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.3.2">
    <div class="paragraph">
      <p>The built-in unary + operator should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.7.1">
    <div class="paragraph">
      <p>Pointer arithmetic shall not form an invalid pointer.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.7.2">
    <div class="paragraph">
      <p>Subtraction between pointers shall only be applied to pointers that address elements of the same array.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.9.1">
    <div class="paragraph">
      <p>The built-in realational operators shall not be applied to objects of pointer type, except where they point to elements of the same array.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.14.1">
    <div class="paragraph">
      <p>The right hand operand of a logical && or || operator should not contain persistent side effects.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.18.1">
    <div class="paragraph">
      <p>An object or subobject must not be copied to an overlapping object.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.18.2">
    <div class="paragraph">
      <p>The result of an assignment operator should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.19.1">
    <div class="paragraph">
      <p>The comma operator should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-8.20.1">
    <div class="paragraph">
      <p>An unsigned arithmetic operation with constant operands should not wrap.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.2.1">
    <div class="paragraph">
      <p>An explicit type conversion shall not be an expression statement.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.3.1">
    <div class="paragraph">
      <p>The body of an iteration-statement or a selection-statement shall be a compound-statement.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.4.1">
    <div class="paragraph">
      <p>All if … else if constructs shall be terminated with an else statement.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.4.2">
    <div class="paragraph">
      <p>The structure of a switch statement shall be appropriate.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.5.1">
    <div class="paragraph">
      <p>Legacy for statements should be simple.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.5.2">
    <div class="paragraph">
      <p>A for-range-initializer shall contain at most one function call.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.6.1">
    <div class="paragraph">
      <p>The goto statement should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.6.2">
    <div class="paragraph">
      <p>A goto statement shall reference a label in a surrounding block.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.6.3">
    <div class="paragraph">
      <p>The goto statement shall jump to a label declared later in the function body.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.6.4">
    <div class="paragraph">
      <p>A function declared with the \[\[noreturn]] attribute shall not return.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-9.6.5">
    <div class="paragraph">
      <p>A function with non-void return type shall return a value on all paths.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.0.1">
    <div class="paragraph">
      <p>A declaration should not declare more than one variable or member variable.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.1.1">
    <div class="paragraph">
      <p>The target type of a pointer or lvalue reference parameter should be const-qualified appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.1.2">
    <div class="paragraph">
      <p>The volatile qualifier shall be used appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.2.1">
    <div class="paragraph">
      <p>An enumeration shall be defined with an explicit underlying type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.2.2">
    <div class="paragraph">
      <p>Unscoped enumerations should not be declared.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.2.3">
    <div class="paragraph">
      <p>The numerical value of unscoped enumeration with no fixed underlying type shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.3.1">
    <div class="paragraph">
      <p>There should be no unnamed namespaces in header files.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-10.4.1">
    <div class="paragraph">
      <p>The asm declaration shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-11.3.1">
    <div class="paragraph">
      <p>Variables of array type should not be declared.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-11.3.2">
    <div class="paragraph">
      <p>The declaration of an object should contain no more than two levels of pointer indirection.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-11.6.1">
    <div class="paragraph">
      <p>All variables should be initialized.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-11.6.2">
    <div class="paragraph">
      <p>The value of an object must not be read before it has been set.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-11.6.3">
    <div class="paragraph">
      <p>Within an enumerator list, the value of an implicitly-specified enumeration constant shall be unique.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-12.2.1">
    <div class="paragraph">
      <p>Bit-fields should not be declared.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-12.2.2">
    <div class="paragraph">
      <p>A bit-field shall have an appropriate type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-12.2.3">
    <div class="paragraph">
      <p>A named bit-field with signed integer type shall not have a length of one bit.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-12.3.1">
    <div class="paragraph">
      <p>The union keyword shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.1.1">
    <div class="paragraph">
      <p>Classes should not be inherited virtually.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.1.2">
    <div class="paragraph">
      <p>An accessible base class shall not be both virtual and non-virtual in the same hierarchy.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.3.1">
    <div class="paragraph">
      <p>User-declared member functions shall use the virtual, override, and final specifiers appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.3.2">
    <div class="paragraph">
      <p>Parameters in an overriding virtual function shall not specify different default arguments.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.3.3">
    <div class="paragraph">
      <p>The parameters in all declarations or overrides of a function shall either be unnamed or have identical names.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-13.3.4">
    <div class="paragraph">
      <p>A comparison of a potentially virtual pointer to member function shall only be with nullptr.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-14.1.1">
    <div class="paragraph">
      <p>Non-static data members should be either all private or all public.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.0.1">
    <div class="paragraph">
      <p>Special member functions shall be provided appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.0.2">
    <div class="paragraph">
      <p>User-provided copy and move member functions of a class should have appropriate signatures.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.1.1">
    <div class="paragraph">
      <p>An object's dynamic type shall not be used from within its constructor or destructor.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.1.2">
    <div class="paragraph">
      <p>All constructor of a class should explicitly initialize all of its virtual base classes and immediate base classes.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.1.3">
    <div class="paragraph">
      <p>Conversion operators and constructors that are callable with a single argument shall be explicit.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.1.4">
    <div class="paragraph">
      <p>All direct, non-static data members of a class should be initialized before the class object is accessible.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-15.1.5">
    <div class="paragraph">
      <p>A class shall only define an initializer-list constructor when it is the only constructor.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-16.5.1">
    <div class="paragraph">
      <p>The logical AND and logical OR operators shall not be overloaded.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-16.5.2">
    <div class="paragraph">
      <p>The address-of operator shall not be overloaded.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-16.6.1">
    <div class="paragraph">
      <p>Symmetrical operators should only be implemented as non-member functions.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-17.8.1">
    <div class="paragraph">
      <p>Function templates shall not be explicitly specialized.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.1.1">
    <div class="paragraph">
      <p>An exception object shall not have pointer type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.1.2">
    <div class="paragraph">
      <p>An empty throw shall only occur within the compound-statement of a catch handler.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.3.1">
    <div class="paragraph">
      <p>There should be at least one exception handler to catch all otherwise unhandled exceptions.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.3.2">
    <div class="paragraph">
      <p>An exception of class type shall be caught by const reference or reference.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.3.3">
    <div class="paragraph">
      <p>Handlers for a function-try-block of a constructor or destructor shall not refer to non-static members from their class or its bases.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.4.1">
    <div class="paragraph">
      <p>Exception-unfriendly functions shall be noexcept.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.5.1">
    <div class="paragraph">
      <p>A noexcept function should not attempt to propagate an exception to the calling function.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-18.5.2">
    <div class="paragraph">
      <p>Program-terminating functions should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.0.1">
    <div class="paragraph">
      <p>A line whose first token is # shall be a valid preprocessing directive.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.0.2">
    <div class="paragraph">
      <p>Function-like macros shall not be defined.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.0.3">
    <div class="paragraph">
      <p>#include directives should only be preceded by preprocessor directives or comments.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.0.4">
    <div class="paragraph">
      <p>#undef should only be used for macros defined previously in the same file.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.1.1">
    <div class="paragraph">
      <p>The defined preprocessor operator shall be used appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.1.2">
    <div class="paragraph">
      <p>The defined preprocessor operator shall be used appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.1.3">
    <div class="paragraph">
      <p>All identifiers used in the controlling expression of #if or #elif preprocessing directives shall be defined prior to evaluation.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.2.1">
    <div class="paragraph">
      <p>Precautions shall be taken in order to prevent the contents of a header file being included more than once.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.2.2">
    <div class="paragraph">
      <p>The #include directive shall be followed by either a or "filename" sequence.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.2.3">
    <div class="paragraph">
      <p>The ' or " or \ characters and the /\* or // character sequences shall not occur in a header file name.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.3.1">
    <div class="paragraph">
      <p>The # and ## preprocessor operators should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.3.2">
    <div class="paragraph">
      <p>A macro parameter immediately following a # operator shall not be immediately followed by a ## operator.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.3.3">
    <div class="paragraph">
      <p>The argument to a mixed-use macro parameter shall not be subject to further expansion.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.3.4">
    <div class="paragraph">
      <p>Parentheses shall be used to ensure macro arguments are expanded appropriately.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.3.5">
    <div class="paragraph">
      <p>Tokens that look like a preprocessing directive shall not occur within a macro argument.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-19.6.1">
    <div class="paragraph">
      <p>The #pragma directive and the \_Pragma operator should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.2.1">
    <div class="paragraph">
      <p>The library functions atof, atoi, atol and atoll from shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.2.2">
    <div class="paragraph">
      <p>The string handling functions from , , and shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.2.3">
    <div class="paragraph">
      <p>The library function system from shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.2.4">
    <div class="paragraph">
      <p>The macro offsetof shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.6.1">
    <div class="paragraph">
      <p>Dynamic memory should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.6.2">
    <div class="paragraph">
      <p>Dynamic memory shall be managed automatically.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.6.3">
    <div class="paragraph">
      <p>Advanced memory management shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.6.4">
    <div class="paragraph">
      <p>If a project defines either a sized or unsized version of a global operator delete, then both shall be defined.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.6.5">
    <div class="paragraph">
      <p>A pointer to an incomplete class type shall not be deleted.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.10.1">
    <div class="paragraph">
      <p>The features of shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.10.2">
    <div class="paragraph">
      <p>The standard header file shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-21.10.3">
    <div class="paragraph">
      <p>The facilities provided by the standard header file shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-22.3.1">
    <div class="paragraph">
      <p>The assert macro shall not be used with a constant-expression.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-22.4.1">
    <div class="paragraph">
      <p>The literal value zero shall be the only value assigned to errno.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-23.11.1">
    <div class="paragraph">
      <p>The raw pointer constructors of std::shared\_ptr and std::unique\_ptr should not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-24.5.1">
    <div class="paragraph">
      <p>The character handling function from and shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-24.5.2">
    <div class="paragraph">
      <p>The C++ standard library function memcpy, memmove and memcpy from shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-25.5.1">
    <div class="paragraph">
      <p>The setlocale and std::locale::global functions shall not be called.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-25.5.2">
    <div class="paragraph">
      <p>The pointers returned by the C++ Standard Library functions localeconv, getenv, setlocale or strerror must only be used as if they have pointer to const-qualified type.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-25.5.3">
    <div class="paragraph">
      <p>The pointer returned by the C++ Standard Library functions asctime, ctime, gmtime, localtime, localeconv, getenv, setlocale or strerror must not be used following a subsequent call to the same function.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-26.3.1">
    <div class="paragraph">
      <p>std::vector should not be specialized with bool.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-28.3.1">
    <div class="paragraph">
      <p>Predicates shall not have persistent side effects.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-28.6.1">
    <div class="paragraph">
      <p>The argument to std::move shall be a non-const lvalue.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-28.6.2">
    <div class="paragraph">
      <p>Forwarding references and std::forward shall be used together.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-28.6.3">
    <div class="paragraph">
      <p>An object shall not be used while in a potentially moved-from state.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-28.6.4">
    <div class="paragraph">
      <p>The result of std::remove, std::remove\_if, std::unique and empty shall be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-30.0.1">
    <div class="paragraph">
      <p>The C Library input/output functions shall not be used.</p>
    </div>
  </Accordion>

  <Accordion title="misra-cpp2023-30.0.2">
    <div class="paragraph">
      <p>Reads and writes on the same file stream shall be separated by positioning operation.</p>
    </div>
  </Accordion>
</AccordionGroup>
