我有以下运行时类型识别语法:
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
报告
(错误)语法错误
如果是RTTI_FUNC(c,short,myFunc); 行
错误是误报。除了使用内联抑制之外,有没有办法忽略它或抑制它?可能有规则还是正则表达式?
或者,是否可以扩展宏以纠正误报?
答案 0 :(得分:0)
您可以使用-I <path/to/include/dir>
,这将允许cppcheck扩展宏