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

问题描述 投票:1回答:1

我具有用于运行时类型标识的以下语法:

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

错误是误报。除了使用内联抑制之外,是否有其他方法可以忽略或抑制它?可能使用规则或正则表达式?

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

c++ c++03 cppcheck
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.