AUTOSAR C++14 Rule A7-1-6
The typedef specifier shall not be used
描述
规则定义
The typedef specifier shall not be used.
理由
using
语法是定义别名时比 typedef
-s 更优的选择。
自 C++11 开始,using
语法允许您定义模板别名,其中模板参量未绑定到数据类型。例如,以下语句为 vector
定义了一个别名 vectorType
,其中参量 T
未绑定到数据类型,可稍后替换:
template<class T, class Allocator = allocator<T>> class vector; template<class T> using vectorType = vector<T, My_allocator<T>>; vectorType<int> primes = {2,3,5,7,11,13,17,19,23,29};
typedef
关键字不允许定义此类模板别名。Polyspace 实现
规则检查项会标记所有使用 typedef
关键字的地方。
如果您不想删除某些 typedef
关键字的实例,请添加注释来申述这些结果。请参阅:
通过 Bug 修复或申述在 Polyspace 用户界面中处理结果 在 Polyspace 用户界面中审查结果时。
通过 Bug 修复或申述在 Polyspace Access 中处理结果 (Polyspace Access)(如果您在 Web 浏览器中审查结果)。
为代码添加注解并隐藏已知或可接受的结果 在 IDE 中审查结果时。
故障排除
如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示。
示例
检查信息
组:声明 |
类别:必需、自动 |
版本历史记录
在 R2019a 中推出