c++ - 如何配置 CppCheck 以阻止函数的使用

标签 c++ c++11 visual-c++ static-analysis cppcheck

阅读 CppCheck 的 List of Checkscheckfunctions.h我注意到了这个特点:

Warn if a function is called whose usage is discouraged

虽然我不明白如何配置它。更具体地说,我想要

  1. 我自己实现的一个功能被劝阻
  2. 不鼓励使用第 3 方函数(例如 OpenCV 的 cv::imwrite())。我正在链接这个库的预构建,因此很难(但并非不可能)更改源代码来实现它

如何注释这些函数或如何将它们添加到 CppCheck 的“不受欢迎的函数”列表中?

最佳答案

检查使用配置。没有什么是硬编码的。编写自定义 cfg 文件并使用 --library加载它。

cfg文件可以自己写,xml格式。或者您可以使用 GUI(它不是有史以来最好的 GUI,但恕我直言,它确实有效)。

如果你有一个函数 foo 被弃用,那么你会写这样的东西:

<function name="foo">
  <warn severity="style" alternatives="bar" reason="Deprecated"/>
  <arg nr="1"/>
</function>

您还可以指定自定义警告消息:

<function name="foo">
  <warn severity="warning">Do not use foo(). Use bar() instead.</warn>
  <arg nr="1"/>
</function>

对于函数接受的每个参数,您需要提供一个 <arg> .

如果您有问题,请告诉我。

关于c++ - 如何配置 CppCheck 以阻止函数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53295937/

相关文章:

c++ - 如何在 C++ 中将字符串传递给 const char*?

c++ - 使用模板实现 "visitor pattern"

C++11:如何访问不同类型的 std::functions 的目标?

c++ - 代码因未初始化的变量而崩溃,即使我实际上并没有使用它

assembly - Visual Studio C++ 的函数序言

c++ - 带有 vector 值声明的 Netbeans IDE 8.0.2 C++ 代码帮助问题映射

c++ - SurfDescriptorExtractor/featureDetector - IOS 中的 OpenCv

visual-studio-2012 - 错误 'this_thread' : the symbol to the left of a '::' must be a type?

c++11 - 标准 C++11 中的 IEEE 754 全序

windows - 批处理文件中的 VC++ SetEnv.cmd