Rule M3-2-1 (required, implementation, automated)

All declarations of an object or function shall have compatible types. See MISRA C++ 2008 [7]