MISRA Discussion Forums

Full Version: Use of constexpr
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am working on an embedded system project and using constexpr on the following situations:
- on constructors so that objects can be statically initialized in compile time
- on functions that are used to initialize constant values
- on constant variables, as an alternative to constant macros (as it violates rule 16-2-2)

The main reasons for using constexpr are (a)to avoid dynamic initialization, making the system more secure, and (b)to make better use of the system's ROM memory.

The constexpr is a language extension so a deviation procedure is necessary to allow its usage.

I would like to know first, if there is any way of achieving the same without the need to write a deviation procedure?

If such is not possible, are the reasons above enough to justify a deviation procedure?

Kind regards,
Miguel Araújo
MISRA C++:2008 is based on C++:2003, which does not include constexpr

When MISRA C++ is revised it will be based on a more recent version of the C++ standard, and will consider the use of constexpr