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

A base class shall only be declared virtual if it is used in a diamond hierarchy. See MISRA C++ 2008 [7]