Следующая программа показывает два проблемных c (но технически обоснованных) использования std::move()
. Можно ли получить предупреждение об этом с помощью LLVM? Я заметил, что есть диагностика c для некоторых других контекстов, где std::move
является избыточным.
Я скомпилировал это с bcc32 c версии 5.0.2 (на основе LLVM 5.0.2) и получил нет предупреждения.
#include <vector>
int main() {
const std::vector<int> a = {1, 2, 3};
std::vector<int> b = {3, 4, 5};
std::vector<int> c = std::move(a); // std::move from const
std::vector<int> d = std::move(b);
std::vector<int> e = b; // used after std::move
}