gpt4 book ai didi

c++ - 如何在我的源代码中找到所有出现的地方,其中 std::string 作为拷贝而不是常量引用传递给方法?

转载 作者:行者123 更新时间:2023-11-30 03:16:46 25 4
gpt4 key购买 nike

我正在优化一个大型项目,并希望尽可能用“const std::string&”替换传递给方法的“std::string”类型的参数。如何在我的源代码树中找到将字符串作为拷贝传递给方法的所有实例?我使用的是 Visual Studio 2012,但也可以在任何方便的 IDE/OS 中执行此操作。

到目前为止,我试图找到所有出现的“字符串”,但有超过 11,000 行要查看,包括那些字符串是类字段,并作为常量引用(不会被替换)传递的字符串

最佳答案

1) 您可以使用 Cppcheck 并解析输出。

主要.cpp:

void bar(string str) {
cout << str;
}

终端:

cppcheck --enable=performance test.cpp

输出:

Checking main.cpp ...
[main.cpp:5]: (performance) Function parameter 'str' should be passed by const reference.

2) clang tidy 也可以以同样的方式运行。例如, CLion show warning on useless string copying

您可以使用 Clang 手动分析和解析输出。

关于c++ - 如何在我的源代码中找到所有出现的地方,其中 std::string 作为拷贝而不是常量引用传递给方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56019811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com