modernize-min-max-use-initializer-list

将嵌套的 std::minstd::max 调用替换为可适用的初始化列表。

例如,考虑以下代码

int a = std::max(std::max(i, j), k);

检查将把上述代码转换为

int a = std::max({i, j, k});

性能注意事项

虽然此检查简化了代码并使其更易读,但由于需要将对象复制到初始化列表中,因此对于非平凡类型可能会导致性能下降。

为避免这种情况,建议对非平凡类型使用 std::refstd::cref

std::string b = std::max({std::ref(i), std::ref(j), std::ref(k)});

选项

IncludeStyle

指定使用哪种包含样式的字符串,llvmgoogle。默认值为 llvm

IgnoreNonTrivialTypes

指定是否忽略非平凡类型的布尔值。默认值为 true

IgnoreTrivialTypesOfSizeAbove

指定忽略平凡类型的尺寸(以字节为单位)的整数。默认值为 32