Issue |
137696
|
Summary |
[clang-tidy] Check request: modernize-use-move-instead-swap
|
Labels |
clang-tidy
|
Assignees |
|
Reporter |
denzor200
|
C++03 did not have move semantics (`std::move`), so `swap` was used to efficiently transfer resources:
```
class CookieManager {
std::vector<Cookie> m_cookies;
public:
CookieManager() = default;
void initialize();
};
void CookieManager::initialize() {
std::vector<Cookie> v(1'000'000);
for (int i=0;i<1'000'000;++i) {
v[i] = // TODO: generate one cookie
}
m_cookies.swap(v); // exchange m_cookies with v (resources are transferred to m_cookies)
}
```
Needs a check that will find usages of `swap` and will suggest to use move-semanthic instead:
```
void CookieManager::initialize() {
std::vector<Cookie> v(1'000'000);
for (int i=0;i<1'000'000;++i) {
v[i] = // TODO: generate one cookie
}
m_cookies = std::move(v); // move semanthic (no copy)
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs