modernize-min-max-use-initializer-list¶
将嵌套的 std::min
和 std::max
调用替换为可适用的初始化列表。
例如,考虑以下代码
int a = std::max(std::max(i, j), k);
检查将把上述代码转换为
int a = std::max({i, j, k});
性能注意事项¶
虽然此检查简化了代码并使其更易读,但由于需要将对象复制到初始化列表中,因此对于非平凡类型可能会导致性能下降。
为避免这种情况,建议对非平凡类型使用 std::ref 或 std::cref
std::string b = std::max({std::ref(i), std::ref(j), std::ref(k)});
选项¶
- IncludeStyle¶
指定使用哪种包含样式的字符串,llvm 或 google。默认值为 llvm。
- IgnoreNonTrivialTypes¶
指定是否忽略非平凡类型的布尔值。默认值为 true。
- IgnoreTrivialTypesOfSizeAbove¶
指定忽略平凡类型的尺寸(以字节为单位)的整数。默认值为 32。