Redian新闻
>
大家觉得C++复杂在哪里?
avatar
大家觉得C++复杂在哪里?# Programming - 葵花宝典
z*r
1
已经发表的文章 copyright 已经 transfer 给ieee了
请问能自己放在自己网站上么? 是不是需要ieee的允许?
avatar
A*e
2
我觉得是type deduction,overload resolution,move semantics。内存管理用smart
pointer已经容易很多了。
avatar
z*r
3
自顶

【在 z******r 的大作中提到】
: 已经发表的文章 copyright 已经 transfer 给ieee了
: 请问能自己放在自己网站上么? 是不是需要ieee的允许?

avatar
t*r
4
类型系统最难啊。 Type traits什么的不容易掌握
还有一些新的utility 比如那些std::move, forward..
我个人就不太喜欢那move.感觉很鸡肋
avatar
p*6
5
应该不行,已经发表的,版权已归杂志,不能在自己网页上粘贴全文

【在 z******r 的大作中提到】
: 自顶
avatar
w*g
6
编程序就绕不过类型系统。像python这种,不还是自己
得在脑子里记着类型。我也写过Perl,自动在字符串
和数值类型之间转化,结果就是各种bugs。

【在 t**r 的大作中提到】
: 类型系统最难啊。 Type traits什么的不容易掌握
: 还有一些新的utility 比如那些std::move, forward..
: 我个人就不太喜欢那move.感觉很鸡肋

avatar
d*r
7
到杂志网站申请一个版权转让就可。非常方便。

【在 z******r 的大作中提到】
: 已经发表的文章 copyright 已经 transfer 给ieee了
: 请问能自己放在自己网站上么? 是不是需要ieee的允许?

avatar
c*e
8
php就是perl转化来的,能用php,还用perl干什么?

【在 w***g 的大作中提到】
: 编程序就绕不过类型系统。像python这种,不还是自己
: 得在脑子里记着类型。我也写过Perl,自动在字符串
: 和数值类型之间转化,结果就是各种bugs。

avatar
z*r
9
谢谢!

【在 d*****r 的大作中提到】
: 到杂志网站申请一个版权转让就可。非常方便。
avatar
A*e
10
move对性能提升还是很明显的。你用用就知道了。
但缺点就是规则更复杂了。以前的Big 3法则现在成了Big 5,构造对象时还要了解重载
规则。

【在 t**r 的大作中提到】
: 类型系统最难啊。 Type traits什么的不容易掌握
: 还有一些新的utility 比如那些std::move, forward..
: 我个人就不太喜欢那move.感觉很鸡肋

avatar
z*r
11
我看到很多人都在自己网站上贴全文 还以为无所谓呢

【在 p******6 的大作中提到】
: 应该不行,已经发表的,版权已归杂志,不能在自己网页上粘贴全文
avatar
D*a
12
最大的问题是半懂不懂的程序员很容易搞出很多bug,而且编译出错信息晦涩难懂,降
低dev productivity

smart

【在 A*******e 的大作中提到】
: 我觉得是type deduction,overload resolution,move semantics。内存管理用smart
: pointer已经容易很多了。

avatar
A*e
13
编译器的问题。clang好一些,但还是不够直观。
写编译器的人难道不明白编译器信息是给程序员看的吗?经常一长串模板展开后报个错
,让人一头雾水。

【在 D*******a 的大作中提到】
: 最大的问题是半懂不懂的程序员很容易搞出很多bug,而且编译出错信息晦涩难懂,降
: 低dev productivity
:
: smart

avatar
D*a
14
因为C++编译器能力太强了

【在 A*******e 的大作中提到】
: 编译器的问题。clang好一些,但还是不够直观。
: 写编译器的人难道不明白编译器信息是给程序员看的吗?经常一长串模板展开后报个错
: ,让人一头雾水。

avatar
C*E
15
是的,而且crash之后就是一个seg fault,不像别的稍微高级点的语言至少给个stack
trace。

【在 A*******e 的大作中提到】
: 编译器的问题。clang好一些,但还是不够直观。
: 写编译器的人难道不明白编译器信息是给程序员看的吗?经常一长串模板展开后报个错
: ,让人一头雾水。

avatar
d*r
16
光语言特性就够你熟悉了
很多时候必须手动管理内存很累人
错了crash了, 查错难
avatar
b*s
17
高性能程序很需要,不用copy了

【在 t**r 的大作中提到】
: 类型系统最难啊。 Type traits什么的不容易掌握
: 还有一些新的utility 比如那些std::move, forward..
: 我个人就不太喜欢那move.感觉很鸡肋

avatar
b*s
18
back --- gdb

stack

【在 C*****E 的大作中提到】
: 是的,而且crash之后就是一个seg fault,不像别的稍微高级点的语言至少给个stack
: trace。

avatar
q*F
19
编译器很难写,要兼容各种新旧语法,有历史包袱。
avatar
r*g
20
放弃吧 我都是clang -c先编译查错
然后用g++完成整过过程
现在gcc给出的出错信息就不是给人看的

【在 D*******a 的大作中提到】
: 因为C++编译器能力太强了
avatar
M*R
21
I think copy-by-value is C++'s original sin.
Once you have copy-by-value, you need copy constructor.
but you cannot write a copy constructor without copy by reference.
So you have both, but then what about pointers?
It cannot manage the memory itself because it's not type-aware.
So you need RAAI, aka. smart pointers.
Now what happens when you copy a collection object,
oh, right, you need to know whether to do a shallow copy, or deep copy.
So how do I mandate shallow copy, you need move constructor and move
semantics.
Now what happens when you copy a collection of smart pointers,
oh, right, we need shared pointers based on ref counting.
Now what about I write a template for all types.
oh, right, we need different specilization for different data types: smart
pointers
types that can be l-value, or types that can only be r-value.
All hells break loose.
Imagine a world C++ doesn't need to support copy-by-value. All above points
vanish,
but, oh, well, it's not C plus plus any more.

smart

【在 A*******e 的大作中提到】
: 我觉得是type deduction,overload resolution,move semantics。内存管理用smart
: pointer已经容易很多了。

avatar
N*K
22
矩阵运算
定义矩阵 A B C D
初始化B为单位矩阵, C, D为随机数
A=B;
B=C*D;
A=A+B+C
你不定义copy by value 就乱套了

【在 M*****R 的大作中提到】
: I think copy-by-value is C++'s original sin.
: Once you have copy-by-value, you need copy constructor.
: but you cannot write a copy constructor without copy by reference.
: So you have both, but then what about pointers?
: It cannot manage the memory itself because it's not type-aware.
: So you need RAAI, aka. smart pointers.
: Now what happens when you copy a collection object,
: oh, right, you need to know whether to do a shallow copy, or deep copy.
: So how do I mandate shallow copy, you need move constructor and move
: semantics.

avatar
n*n
23
可以定义clone

【在 N******K 的大作中提到】
: 矩阵运算
: 定义矩阵 A B C D
: 初始化B为单位矩阵, C, D为随机数
: A=B;
: B=C*D;
: A=A+B+C
: 你不定义copy by value 就乱套了

avatar
N*K
24
换个马甲就高大上了?

【在 n******n 的大作中提到】
: 可以定义clone
avatar
M*R
27
copy by value 只是让这种syntax变得容易,并不是说没有copy by value ,就实现不
了。何况你要是喜欢这样的,fp不是更合适

【在 N******K 的大作中提到】
: 矩阵运算
: 定义矩阵 A B C D
: 初始化B为单位矩阵, C, D为随机数
: A=B;
: B=C*D;
: A=A+B+C
: 你不定义copy by value 就乱套了

avatar
N*K
28
看来你是没有搞过数学类的算法

【在 M*****R 的大作中提到】
: copy by value 只是让这种syntax变得容易,并不是说没有copy by value ,就实现不
: 了。何况你要是喜欢这样的,fp不是更合适

avatar
M*R
29
大牛,数学和编程都懂 。我估计B.S.同学也没你牛

【在 N******K 的大作中提到】
: 看来你是没有搞过数学类的算法
avatar
x*k
30
多重继承,读代码时你很难猜到具体调的是哪个函数.
另外就是各种复杂的template meta programming.很有效率,但如果你用不上,当我没说.

smart

【在 A*******e 的大作中提到】
: 我觉得是type deduction,overload resolution,move semantics。内存管理用smart
: pointer已经容易很多了。

avatar
n*3
31
难就难在向下兼容 c
向前 meta programming。。。
还有 。。。。
我看除了 pure FE, IT 神马都有一点
杀手library 还不到Java 一成

说.

【在 x****k 的大作中提到】
: 多重继承,读代码时你很难猜到具体调的是哪个函数.
: 另外就是各种复杂的template meta programming.很有效率,但如果你用不上,当我没说.
:
: smart

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。