我想检测可能未初始化的变量。我尝试过-Wall
,-Wextra
甚至是-Weffc++
。有没有办法(使用编译器或外部工具)来检测这种问题?下面有一个例子,我宁愿静态检测这个问题而不是运行时问题。
如果没有运行for
循环的迭代,那么prev
在达到if
时仍然未初始化,然后SEGFAULT
时prev
二手..
decltype(params.begin()) prev;
for (auto it = params.begin();
std::prev(params.end()) - (it + max_chunk_size - 1) >= 0;
prev = it += max_chunk_size) {
auto val = {it, it+max_chunk_size};
}
if (prev != params.end()) {
auto val = {prev, params.end()};
}