c++的今天,这次c++大会的内容太水了.
为什么是c++
.
序号 | 理由 |
---|---|
1 | 低成本高抽象 |
2 | 低级访问,甚至汇编 |
3 | 应用领域广 |
4 | 高可移植 |
5 | 更好资源管理 |
低成本高抽象:
序号 | 特征 |
---|---|
1 | 用户定义类型 |
2 | 类型模板 |
3 | 泛型算法 |
4 | 别名类型 |
5 | 推导类型 |
6 | 编译时自省 |
7 | 运行时多态 |
8 | 异常 |
9 | 决定性析构 |
用户定义类型
内置类型:强大,有表现力
可用基本类型,用户定义类型
干任何事
程序员可定义类型:基本算术类型(重载操作符)
,对象指针,函数指针
.
不强加编程范式.但有:过程,基于对象,面向对象,泛型,函数式,值语义
.自由组合各种范式.
库:可以说c++
是由库
组成的.
库的特点:强大,有效,安全,自然语法,特定类型优化,自动管理资源,与自定义代码一样有效的泛型特征,很小的抽象开销,0开销准则(与你手写差不多)
低级访问
系统编程语言:低级硬件控制,响应硬件中断,设备驱动,任意操作内存(甚至操作位),附带汇编器,允许内联汇编代码
作为c
的超集
附带.
管理用户定义类型
大多数语言通过从栈分配内存,跑构造器函数
来创建对象.
而c++可以在堆上,静态内存,栈内存,任意内存
上构造.
可优化缓存:利用缓存,避免错误共享
.
大多数语言容器不能在连续内存上分配,不能利用前向缓冲
.
c++的数组,向量,单列,用户定义类型
都可以.
宽应用领域
并不解决特定问题,而是解决通用问题
可伸缩:软件工程就是关于可伸缩
,算法,语言.
低端:嵌入式,设备驱动,cgi,移动应用
,你仅支付你用的,低内存占用.
高端:几百个工程师,几十个模块
,单独编译模块.
高可移植
c机器
模型:最小要求,全局硬件支持,
几乎所有平台,都有c++
工具链
所有头部手机平台,唯一可用高级语言
不用重写,c++就可支持这些平台.
即使完美
的语言,不能在特定平台上构建,也没有价值.
语言外部因素:工具链,分析工具,有经验工程师,软件库,书籍/说明材料,支持问题跟踪,培训机会
.
大安装量,工业支持.
更好的管理资源
垃集:优势:无泄漏,或双处理,很烦的问题
.
劣势:一直占用内存,程序员不能控制,可导致冻结,要求大量未用内存缓冲
.
c++要求更好解决方案:
必须通用:内存是唯一资源,类似管理其他资源,使用后立即释放
,
决定性析构.
RAII
:获取资源即初化,获取责任是初化,出域时要释放,在适当生命期的对象(在栈上)要释放,finally违背了不要重复原则
尽量快,
在2000
年,桌面计算很快了,似乎不需要速度
了.
为什么写一个更复杂的语言,而在速度上只有丁点改进?
c++特点:c语言的负担,大量复杂却丁点更强大(模板,泛型,重载操作符,指针太难),管理语言似乎够快了,
管理语言:
java
系:java,scala,jython,jruby,clojure,groovy
微软
系:c#,f#,ironpython,ironruby,c++/cli
大学觉得管理
语言比c
系更好教.
指针太难!
但性能问题
很重要.c++11
出世了.
添加了:动,基于区间循环,枚一致,统一初化,
λ
表达式:简化,更通用算法,更函数式
改进字符:字符集/统一码,自定义字面量
元组,各种指针:独针/共针/弱针
.
更好支持库作者:类型自省,可变模板,完美转发
大消息:多线程,移动语义
等等.
概念=约束+公理;
概念,要在类型,语义,操作
上下功夫.
λ:嵌套函数/函数对象/匿名函数
,λ
也可以嵌套,不过都没多大必要.可能有些上下文
时,可以省略点.明明可以用函数
解决的,非要用λ
,叫舍近求远
.都没啥东西.
插件开发:感觉还是不如函数
方便.折腾.
感觉
,c++
都没啥新东西了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现