CppCoreGuidelines T.12 最好用 concept,不要用 auto 或局部变量
31 August 2023
“Prefer concept names over auto for local variables”
理由
auto 是最弱的 concept 。 concept 比 auto 传递的信息更多。
例子
vector<string> v{ "abc", "xyz" }; auto& x = v.front(); // bad String auto& s = v.front(); // good (String is a GSL concept)
这里 String 是 GSL 中定义的 concept 。当 String 和 auto 一起用的时候,这个 String 就被当作 concept 使用了。这里,其实 String 这个 concept 是用来约束 auto 的,不然, auto 就太自由了。