有没有办法告诉cppcheck忽略宏(或正确扩展它)?

时间:2017-01-11 00:15:28

标签: c++ c++03 cppcheck

我有以下运行时类型识别语法:

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); 行

错误是误报。除了使用内联抑制之外,有没有办法忽略它或抑制它?可能有规则还是正则表达式?

或者,是否可以扩展宏以纠正误报?

1 个答案:

答案 0 :(得分:0)

您可以使用-I <path/to/include/dir>,这将允许cppcheck扩展宏