cppcoreguidelines-avoid-do-while¶
当使用 do-while
循环时发出警告。它们不如普通的 while
循环易读,因为终止条件在最后,并且在第一次迭代之前不会检查条件。这会导致细微的错误。
此检查实现了 C++ 核心准则中的 ES.75。
示例
int x;
do {
std::cin >> x;
// ...
} while (x < 0);
选项¶
- IgnoreMacros¶
在分析宏时忽略检查。这对安全定义函数式宏很有用。
#define FOO_BAR(x) \ do { \ foo(x); \ bar(x); \ } while(0)
默认为 false。