MISRA Discussion Forums

Full Version: Rule 0.2.4 non-compliant reason
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Hi! I've questions about the examples of MISRA C++:2023 Rule 0.2.4 "Functions with limited visibility should be used at least once":


namespace B
{
  struct C2 {};
  static void swap( C2 &, C2 & ); // Non-compliant
}


B:Confusedwap() is marked as non-compliant, could anyone please give some explanations?


Thank you very much!
0.2.4 is marked as a 'System' rule, meaning that the whole program needs to be considered when determining compliance.
For System rules, either the example text represents the whole of the program or it can be assumed that there are no relevant references to the example code in the rest of the program.

In the example code there are no uses of B:: swap, so it is marked as non-compliant.

In contrast, A:: swap is used in f5, so is compliant.