QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查

打开你的工程,点击Analyze -> Clang-Tidy and CLazy

选择你想分析的 cpp, 然后可以点下方 Filter 旁边的 Apply Fixits 按钮修复

QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查

这里并不想对 static analyze 展开太多,想具体了解的可以看别人的文章,比如


今天想通过静态检查来谈谈如何提高 Qt 代码质量

① Use multi-arg instead

【不要使用一连串的 arg().arg().arg() 了】

QString("%1 %2").arg(a).arg(b); // Bad
QString("%1 %2").arg(a, b); // one less temporary heap allocation

② parameter 'list' is passed by value and only copied once; consider moving it to avoid unnecessary copies

【多使用右值引用,可以通过 std::move 将参数转化为右值引用】

ChartWidget::ChartWidget(QWidget *parent,QList<int> list) : QWidget(parent), l(list), delt(1.0)
{
} // Bad

ChartWidget::ChartWidget(QWidget *parent,QList<int> list) : QWidget(parent), l(std::move(list)), delt(1.0)
{
} // performance unnecessary value param

③ the parameter 'table_string' is copied for each invocation but only used as a const reference; consider making it a const reference

【定义函数时,多使用 const &】

void LogData::setupMatrixCam2Veh(QString table_string) // Bad
void LogData::setupMatrixCam2Veh(const QString& table_string)
// performance unnecessary value param

④ constructor does not initialize these fields

【不要忘记初始化类的变量,在头文件的变量旁添加 {} 就可以了】

QToolButton *resetButton; // Bad
QToolButton *resetButton{}; // cppcoreguidelines pro type member init

⑤ use auto when initializing with new to avoid duplicating the type name

【多用auto关键字,尽量使用更现代化的方式来 new】

QHBoxLayout *hl = new QHBoxLayout; // Bad
auto hl = new QHBoxLayout; // modernize use auto

⑥ to be continued...

https://zhuanlan.zhihu.com/p/51791350

相关文章:

  • 2022-01-02
  • 2021-08-16
  • 2022-12-23
  • 2021-07-04
  • 2021-06-12
  • 2021-06-02
  • 2021-05-02
  • 2021-07-04
猜你喜欢
  • 2021-11-02
  • 2021-05-29
  • 2021-12-21
  • 2021-05-25
  • 2021-07-27
  • 2021-11-05
  • 2021-08-23
相关资源
相似解决方案