由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 大家觉得C++复杂在哪里?
相关主题
这个问题怎么答?C++ operator = overloading用copy & swap有啥优点
这段code有啥问题?为什么在overloading中,friend <<不能读取private值呢?
C++ 11问题:emplace_back()C怪问题一个
c++什么编译器好使?请问delete的问题
C++项目大部分失败了,统计数据在哪里?one more interview question
C++问题: 指针变量是哪里产生的?C++ Q90 - Q92 (转载)
one question about structquestion overloading ++ error
c++ pointers are iterators, why?菜鸟请教smart pointer
相关话题的讨论汇总
话题: copy话题: c++话题: pointers话题: smart话题: value
进入Programming版参与讨论
1 (共1页)
A*******e
发帖数: 2419
1
我觉得是type deduction,overload resolution,move semantics。内存管理用smart
pointer已经容易很多了。
t**r
发帖数: 3428
2
类型系统最难啊。 Type traits什么的不容易掌握
还有一些新的utility 比如那些std::move, forward..
我个人就不太喜欢那move.感觉很鸡肋
w***g
发帖数: 5958
3
编程序就绕不过类型系统。像python这种,不还是自己
得在脑子里记着类型。我也写过Perl,自动在字符串
和数值类型之间转化,结果就是各种bugs。

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

c*********e
发帖数: 16335
4
php就是perl转化来的,能用php,还用perl干什么?

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

A*******e
发帖数: 2419
5
move对性能提升还是很明显的。你用用就知道了。
但缺点就是规则更复杂了。以前的Big 3法则现在成了Big 5,构造对象时还要了解重载
规则。

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

D*******a
发帖数: 3688
6
最大的问题是半懂不懂的程序员很容易搞出很多bug,而且编译出错信息晦涩难懂,降
低dev productivity

smart

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

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

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

D*******a
发帖数: 3688
8
因为C++编译器能力太强了

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

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

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

d*******r
发帖数: 3299
10
光语言特性就够你熟悉了
很多时候必须手动管理内存很累人
错了crash了, 查错难
相关主题
C++问题: 指针变量是哪里产生的?C++ operator = overloading用copy & swap有啥优点
one question about struct为什么在overloading中,friend <<不能读取private值呢?
c++ pointers are iterators, why?C怪问题一个
进入Programming版参与讨论
b*******s
发帖数: 5216
11
高性能程序很需要,不用copy了

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

b*******s
发帖数: 5216
12
back --- gdb

stack

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

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

【在 D*******a 的大作中提到】
: 因为C++编译器能力太强了
M*****R
发帖数: 650
15
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已经容易很多了。

N******K
发帖数: 10202
16
矩阵运算
定义矩阵 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.

n******n
发帖数: 12088
17
可以定义clone

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

N******K
发帖数: 10202
18
换个马甲就高大上了?

【在 n******n 的大作中提到】
: 可以定义clone
m*********t
发帖数: 527
19
Re.
参见一下 Eigen (C++ 矩阵库,非常高效) 的内部实现,
http://eigen.tuxfamily.org/index.php?title=Eigen3_Developer_Doc
http://download.tuxfamily.org/eigen/meetings/paris2010/Gael-New

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

N******K
发帖数: 10202
20
c++适合做这些数学味道很重的算法 所以不是一般人应该学的语言

【在 m*********t 的大作中提到】
: Re.
: 参见一下 Eigen (C++ 矩阵库,非常高效) 的内部实现,
: http://eigen.tuxfamily.org/index.php?title=Eigen3_Developer_Doc
: http://download.tuxfamily.org/eigen/meetings/paris2010/Gael-New

相关主题
请问delete的问题question overloading ++ error
one more interview question菜鸟请教smart pointer
C++ Q90 - Q92 (转载)问个disable copy constructor的问题
进入Programming版参与讨论
M*****R
发帖数: 650
21
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 就乱套了

N******K
发帖数: 10202
22
看来你是没有搞过数学类的算法

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

M*****R
发帖数: 650
23
大牛,数学和编程都懂 。我估计B.S.同学也没你牛

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

smart

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

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

说.

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

1 (共1页)
进入Programming版参与讨论
相关主题
菜鸟请教smart pointerC++项目大部分失败了,统计数据在哪里?
问个disable copy constructor的问题C++问题: 指针变量是哪里产生的?
c++的一个诡异问题,高手请进one question about struct
哪位大牛简单说说compiler里的bootstrap是干啥用的?c++ pointers are iterators, why?
这个问题怎么答?C++ operator = overloading用copy & swap有啥优点
这段code有啥问题?为什么在overloading中,friend <<不能读取private值呢?
C++ 11问题:emplace_back()C怪问题一个
c++什么编译器好使?请问delete的问题
相关话题的讨论汇总
话题: copy话题: c++话题: pointers话题: smart话题: value