logo slogan

QA-MISRA-C++

PRQA-MISRA

 

Background

 

After their success with MISRA-C, MISRA set out to provide an equivalent standard for the C++ language. Starting in mid-2005, the energies and expertise of a number of organizations were channeled to create MISRA-C++.

 

Again, like our involvement with MISRA-C, PRQA is a leading member of this forum too. We currently contribute two valuable resources to provide domain and language expertise to this work:

 

  • PRQA's Richard Corden as a full MISRA-C++ committee member. Richard is an acknowledged expert in the C++ language, and a full voting member of SC22/WG21. He is also the lead developer of the world’s most capable, full parsing C++ code analyzer: QA·C++.

  • PRQA's comprehensive and widely-adopted HIGH·INTEGRITY C++ coding standard has been provided as source material covering a wide scope of the C++ language.

  •  

C++ continues to gain traction as a language choice for the development of safety critical systems.  The release of the JSF++ Coding Standard and the upcoming finalization of the MISRA-C++ standard provide best practice support in this arena.

 

MISRA-C++, like it's predecessor MISRA-C, predominantly targets developers in the Motor Industry. However, as can be seen from the widespread use of the MISRA-C standard, it is likely that MISRA-C++ will also have a broader appeal.

 

A key principle in the design of the C++ language was (and still is) that is is compatible with the C language.  However, the original designers of C++ made some changes to improve aspects of the C subset of C++. A good example is a stricter type system.

 

The goal of MISRA-C++ is to create a similarly motivated subset against the complete C++ language.  Rules were added to cover areas that through experience have been shown to be dangerous, or are explicitly listed in the standard as having unspecified, undefined or implementation defined behavior. A key difference between the MISRA-C++ standard and many other standards in use today is that it does address areas of the language traditionally banned outright.  Specifically, a significant set of rules relating to template and exceptions have been added, rather than the usual “Don't use 'feature X'”.