AUTOSAR C++14 Rule A8-5-3
A variable of type auto shall not be initialized using {} or ={} braced-initialization
描述
A variable of type auto shall not be initialized using {} or ={} braced-initialization.
理由
当使用花括号进行初始化时,auto 的类型推断会产生违反直觉的结果。推断出的类型是 std::initializer_list<>,而不是您可能从初始化函数中估计出的类型。
例如,定义:
auto x{1};x 的类型为 std::initializer_list<int>,而不是 int。某些编译器会根据此定义推断出类型为 int,但不同编译器的行为并不一致。Polyspace 实现
如果变量使用花括号 {} 或 ={} 形式进行初始化,则检查项会标记使用 auto 类型的变量定义。
故障排除
如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示。
示例
检查信息
| 组:声明符 |
| 类别:必需、自动 |
PQL 名称:std.autosar_cpp14.A8_5_3 |
版本历史记录
在 R2020a 中推出