我具有用于运行时类型标识的以下语法:
if RTTI_FUNC( c, short, myFunc );
else if RTTI_FUNC( c, float, myFunc );
else if RTTI_FUNC( c, complex<short>, myFunc );
else if RTTI_FUNC( c, complex<float>, myFunc );
其中RTTI_FUNC在另一个文件中定义为
#define RTTI_FUNC(in,type,func) \
( dynamic_cast<MyClass< type >* >(in) ) \
func( *(reinterpret_cast<MyClass< type >* >(in)) )
我跑步时
cppcheck . --force --enable=all -q
它报告
((错误)语法错误
对于if RTTI_FUNC(c,short,myFunc);行
错误是误报。除了使用内联抑制之外,是否有其他方法可以忽略或抑制它?可能使用规则或正则表达式?
或者,可以扩展宏以纠正误报吗?
您可以使用-I <path/to/include/dir>
允许cppcheck扩展宏