c++ - 有没有办法告诉 cppcheck 忽略宏(或适本地扩展它)?

标签 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

报告

(error) syntax error

对于 if RTTI_FUNC( c, short, myFunc );

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

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

最佳答案

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

关于c++ - 有没有办法告诉 cppcheck 忽略宏(或适本地扩展它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41580729/

相关文章:

c++ - 我应该使用图形库吗?

c++ - Windows 到 iPhone 二进制文件

c++ - 默认值和零初始化困惑

c++ - boost::enable_if 有两个条件

c++ - 我可以在函数头中包含 cppcheck 抑制吗?

linux - 如何将 cppcheck 的输出重定向到文件中?

c++ - 在 C++ 中,一个函数有多少种调用方式?

c++ - 如何从 glm::mat4 中读取值

c++ - C++03 的正则表达式库

c++ - 如何使用 CMAKE_EXPORT_COMPILE_COMMANDS?