我有以下用于运行时类型识别的语法:
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
报告
(error) syntax error
对于 if RTTI_FUNC( c, short, myFunc ); 行
错误是误报。除了使用内联抑制之外,还有什么方法可以忽略它或抑制它吗?可能使用规则或正则表达式?
或者,是否可以扩展宏来纠正误报?
最佳答案
您可以使用 -I <path/to/include/dir>
这将允许 cppcheck 扩展宏
关于c++ - 有没有办法告诉 cppcheck 忽略宏(或适本地扩展它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41580729/