代码质量与安全 | 一文回顾C++简史,为MISRA C++:2023做好准备

简介:C++历史
C++的起源
当Stroustrup在剑桥大学计算实验室撰写博士论文时,对Simula编程语言的程序组织和并发功能印象深刻,并用它编写了一个模拟器。然而,他发现该语言的实现并不能很好地扩展,因此最终用BCPL重写了该模拟器。
带类(Classes)的C语言
类
派生类
公共/私有访问控制
构造函数和析构函数
调用和返回功能(由于不受欢迎,很快被删除)
友元类
函数参数的类型检查
内联函数
默认参数
赋值运算符的重载
C++
虚拟功能
函数名称和运算符重载
引用
常量
用户对自由存储器(堆内存)的控制
改进了类型检查和C++风格注释(实际上取自BCPL)
C++的2.0版本
多重继承
类型安全链接
改进了重载函数的解析
赋值和初始化的递归定义
改进的用户定义内存管理设施
抽象类
静态成员函数
常量成员函数
受保护的成员
重载运算符->和指向成员的指针
C++的3.0版本
《C++注释参考手册》
C++98
实时类型信息(RTTI:dynamic_cast、typeid)
协变返回类型
强制转换运算符
Mutable
布尔类型(Bool)
条件声明
成员模板
类内成员初始值设定项(In-class member initializers)
模板的单独编译(导出)
模板部分专用化
重载函数模板的部分排序
C++03和嵌入式C++
C++11
内存模型
并发性
自动和声明类型
基于范围的for循环(Range-for)
移动语义和右值引用
统一初始化
空指针
常量表达式函数
用户定义的文本
原始字符串文本
属性
Lambdas(拉姆达斯)
可变参数模板
模板别名(使用)
Noexcept
覆盖和最终
静态断言
Long long
默认成员初始值设定项
在构造函数中初始化
枚举类
C++14
二进制文本(0b)
数字分隔符
变量模板
函数返回类型推导
通用lambda
constexpr函数中的局部变量
移动捕捉
按类型访问元组
标准库中的用户定义的文本
C++17
类模板参数推导(推导指南介绍)
结构化绑定
内联变量
折叠表达式
条件下的显式测试
保证复制省略
更严格的表达式计求值顺序
自动作为模板参数类型
用于发现常见错误的标准属性
十六进制浮点文字
“if onstexpr”
C++20
协程(Coroutines)
概念
模块
C++的未来
适用于C++的值得信赖的 Perforce静态分析
弗兰克-范登博肯(Frank van den Beuken)
首席技术支持工程师,Perforce
作为技术支持专家,弗兰克在集成Perforce静态源代码分析解决方案以进行软件质量控制方面拥有超过20年的经验,服务于客户的软件开发环境。近年来,他专注于为各种编译器配置静态分析。他还提供代码质量培训和咨询服务。
Frank拥有Nijmegen大学数学与计算科学博士学位,研究领域为系统规范语言。
立即了解为什么Helix QAC是适用于MISRA C和MISRA C++的最佳静态代码分析器,请联系Perforce中国授权合作伙伴——龙智:
官网:www.shdsd.com
电话:400-666-7732
邮箱:marketing@shdsd.com