![]() |
1
8
据我所知,没有什么好的理由。 有人提议对此进行更改 a month ago . 我鼓励你支持它。
在某种程度上,不一致性得到了修复。
在里面
c++11
更改的规则阻止了COW(写时拷贝)实现,这打破了现有合理兼容的ABI
它的API不同于
处理以下遗留行为
传球时仍然是UB
构建
|
![]() |
2
3
唯一原因是: 运行时性能。
这确实很容易定义
在绝对最大性能和方便性之间的平衡上,C++总是追求绝对最大性能,即使这意味着会损害程序的健壮性。 最著名的例子是默认情况下不初始化类中的POD成员变量:尽管在99%的情况下程序员希望初始化所有POD成员变量,但C++决定不这样做,以允许所有类中的1%实现略高的运行时性能。这种模式在C++中到处重复。性能胜过一切。 C++中没有“性能影响可以忽略不计”。:-) (请注意,我个人也不喜欢C++中的这种行为 违约 行为是 安全 ,并且必须显式请求未经检查和未初始化的行为,例如使用额外的关键字。2018年,在许多项目中,未初始化变量仍然是一个主要问题。) |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |