- 主题:c++太垃圾
真是冲着做事情的话,越界这点事儿真不值一提吧
std标准库值得比这吐槽一百倍的点都多了去了,真上的时候不还得捏着鼻子用
【 在 mrunmatched 的大作中提到: 】
: 另外爱用不用的态度太傲慢了,不是做好事情该有的态度
: 发自「今日水木 on HMA-AL00」
--
FROM 222.129.2.*
靠近底层的高级语言,其实并不适合新手用,因为自由度很大,如果用自己没有精确掌握的东西,就进坑了。
新手适合python、js、java这种
【 在 jjfz 的大作中提到: 】
: 楼主的问题在于C++并不认为它是个缺陷
: 这玩意我在底层数据设计里还是常用的
: 比如根据模型,存储的数据可能是double [2],或者4,或者8
: ...................
--
FROM 222.131.205.*
没有c/c++,就没有任何其他高级语言。
【 在 mrunmatched 的大作中提到: 】
: 是啊,就这样还有很多自以为很懂c++的人傲慢的觉得语言设计没问题,是程序员不会用,把责任全推给程序员。
: 【 在 ztysys 的大作中提到: 】
: :
: ...................
--来自微微水木3.5.12
--
FROM 140.206.194.*
C/C++都多少年了啊,比不少80后还早,问题肯定是不少的,站在时代的角度看吧。
【 在 mrunmatched 的大作中提到: 】
: 是啊,就这样还有很多自以为很懂c++的人傲慢的觉得语言设计没问题,是程序员不会用,把责任全推给程序员。
: 发自「今日水木 on HMA-AL00」
--
FROM 222.131.205.*
这是c系语言的基本操作,你代码读的太少
【 在 HerSMTH 的大作中提到: 】
: 你这个也算是奇技淫巧,哈哈哈
:
:
: ...................
--来自微微水木3.5.12
--
FROM 24.22.244.*
有功就不能提过了?
【 在 foliver 的大作中提到: 】
:
: 没有c/c++,就没有任何其他高级语言。
:
: --来自微微水木3.5.12
: --
:
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
未定义行为的消除并不是没有代价的,是否支付这种代价是设计语言的重要选择,无论选哪个都有站得住脚的理由。这里说的代价还不仅是性能上的,还可能就是语言能力上的。
比如硬件编程就是可能需要读写固定物理地址,这在c语言标准中也是未定义行为(c语言规定合法指针算数只能指向数组内),可在特定硬件场景下也不能不用。语言特性不符合自己应用场景也不奇怪,因为种种其他原因换不了语言也只能凑合用。
下标边界检查本身是个相对容易说清楚的事,静态检查原理上就做不到准确,动态检查会慢(极端情况可能慢千百倍)。数值计算领域要求不能加动态检查,至少内循环不能加,否则慢得不能接受;应用开发领域要求最好都加动态检查,这是个利弊权衡的事。
语言是不是要求静态/动态检查下标?某款编译器是不是静态/动态检查?检查结果是是否有强制效果?这几个事儿其实还是有挺多差别的。
【 在 mrunmatched 的大作中提到: 】
: 嗯,程序出现未定义行为太吓人了,这种bug神出鬼没,特别难追踪
: 【 在 HerSMTH 的大作中提到: 】
: :
: ...................
--
修改:milksea FROM 114.249.213.*
FROM 114.249.213.*
是的,都是权衡取舍,我只是觉得舍弃内存安全性的代价太大了
【 在 milksea 的大作中提到: 】
:
: 未定义行为的消除并不是没有代价的,是否支付这种代价是设计语言的重要选择,无论选哪个都有站得住脚的理由。这里说的代价还不仅是性能上的,还可能就是语言能力上的。
: 比如硬件编程就是可能需要读写固定物理地址,这在c语言标准中也是未定义行为(c语言规定合法指针算数只能指向数组内),可在特定硬
: ..................
发自「今日水木 on HMA-AL00」
--
FROM 223.72.88.*
那说明你的应用场景并不完全契合c++语言。
事实上是折中的。c++可以通过使用容器,vector使用at函数来打开动态下标检查,只不过[]下标不查。
go默认就是动态检查下标,可以用编译选项关闭。此外go还有gc。go通过unsafe包支持任意指针类型转换和指针算术。
rust默认有动态下标检查,但可选用不检查下标的方法,另外迭代器访问场景不需要检查。rust无gc。
目前常用的native语言主要就这几个,选择都不太一样。
【 在 mrunmatched 的大作中提到: 】
: 是的,都是权衡取舍,我只是觉得舍弃内存安全性的代价太大了
: 【 在 milksea 的大作中提到: 】
: :
: ...................
--
FROM 114.249.213.*