由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++14新特性
相关主题
C++11的lambda不会破坏可读性吗?求教一个python lambda问题
lambda的一个疑问真正对异步有需求的应该是游戏类服务器
lambda到底有什么好?PYPL: C# is the language of the year-2012
请教C++ call-by-ref & call-by-val的问题Python就是爽
Typescript是不是实际上反 functional programming 的?我认为JVM上的语言,老大还是Java
auto 很爽Paypal抛弃Java是因为Douglas Crockford吗?
c++ 如何重用一段代码,并把其中加法变成减法为什么C能占据TIOBE的第一名?
我对为什么使用FP的理解 (补)Scala的用途
相关话题的讨论汇总
话题: c++话题: auto话题: lambda话题: 类型
进入Programming版参与讨论
1 (共1页)
w***g
发帖数: 5958
1
前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
接地气的新特性。
auto sqr (int n) { // 自动返回类型
return n * n;
}
// 自动lamba类型。这个我早就很不爽了。
sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
// extended capturing
async(launch::async, [x = std::move(x)]() {
...
});
这个特性很重要。如果x是一个超大的对象,在主线程中没用,只需要在
lambda里面用,C++11下只能capture reference,而必须在主线程中保证
x的生存期。用C++14的capture,x的ownership就转移到lambda里面了。
d****i
发帖数: 4809
2
auto和lambda都非常不好
auto有违反C++作为静态语言的宗旨,多谢一个类型又如何,让读代码的人更容易理解
lambda完全不必要,写成单独的函数,或者用function pointer或者functor更清晰明
了易懂易维护,完全没有必要为了少些两行而搞得很丑

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

d****i
发帖数: 4809
3
珍惜生命,远离任何语言的所谓的“新特性”

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

s******u
发帖数: 501
4
你觉得像java的这种写法比auto更好?
theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

【在 d****i 的大作中提到】
: auto和lambda都非常不好
: auto有违反C++作为静态语言的宗旨,多谢一个类型又如何,让读代码的人更容易理解
: lambda完全不必要,写成单独的函数,或者用function pointer或者functor更清晰明
: 了易懂易维护,完全没有必要为了少些两行而搞得很丑

v*****u
发帖数: 1796
5
写的时候多花点力气, 看代码的时候省力。

你觉得像java的这种写法比auto更好?
theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

【在 s******u 的大作中提到】
: 你觉得像java的这种写法比auto更好?
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

s******u
发帖数: 501
6
涉及到template的时候就不是多花点力气的问题了,搞不好要花上半个小时才能算出来
我这个变量的类型是什么,比方说boost spirit的中间变量类型如果完全展开来大概要
有上千个字符,这时候全部写出来哪里还有可读性。而且这种类型推导基本都是机械性
的,为什么不让compiler来帮你做这个事情?

【在 v*****u 的大作中提到】
: 写的时候多花点力气, 看代码的时候省力。
:
: 你觉得像java的这种写法比auto更好?
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

d****i
发帖数: 4809
7
你这个本身就是命名的时候就没想好设计好,即便在java里面,也应该写成这样
SmartShortenedName ssn = new SmartShortenedName();

【在 s******u 的大作中提到】
: 你觉得像java的这种写法比auto更好?
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

s******u
发帖数: 501
8
vs.
auto sso = new SmartShortenedName();
我觉得完全没有影响任何的可读性

【在 d****i 的大作中提到】
: 你这个本身就是命名的时候就没想好设计好,即便在java里面,也应该写成这样
: SmartShortenedName ssn = new SmartShortenedName();

d****i
发帖数: 4809
9
问题是几个函数分别take不同类型的参数,
void foo(SmartShortenedName ssn);
void foo2(AnotherClass ac);
void foo3(YetAnotherClass yac);
结果你全部给他传入auto类型。。。这不是混淆静态语言和动态语言的本质本征区别吗?
这个时候就看出写全的优势了。

【在 s******u 的大作中提到】
: vs.
: auto sso = new SmartShortenedName();
: 我觉得完全没有影响任何的可读性

s******u
发帖数: 501
10
auto不是一个类型,虽然我写了auto ssn = SmartShortendName(),这个ssn的实际的
类型就是SmartShortenedName,这个没有任何的歧义

吗?

【在 d****i 的大作中提到】
: 问题是几个函数分别take不同类型的参数,
: void foo(SmartShortenedName ssn);
: void foo2(AnotherClass ac);
: void foo3(YetAnotherClass yac);
: 结果你全部给他传入auto类型。。。这不是混淆静态语言和动态语言的本质本征区别吗?
: 这个时候就看出写全的优势了。

相关主题
auto 很爽求教一个python lambda问题
c++ 如何重用一段代码,并把其中加法变成减法真正对异步有需求的应该是游戏类服务器
我对为什么使用FP的理解 (补)PYPL: C# is the language of the year-2012
进入Programming版参与讨论
l*********s
发帖数: 5409
11
类型错误一样是编译时而不是运行时,有啥混淆的。

吗?

【在 d****i 的大作中提到】
: 问题是几个函数分别take不同类型的参数,
: void foo(SmartShortenedName ssn);
: void foo2(AnotherClass ac);
: void foo3(YetAnotherClass yac);
: 结果你全部给他传入auto类型。。。这不是混淆静态语言和动态语言的本质本征区别吗?
: 这个时候就看出写全的优势了。

s******u
发帖数: 501
12
简单的说如果你定义两个变量
auto ssn = SmartShortenedName();
auto ac = AnotherClass();
foo(ac)编译器一样会给你报错的。估计你可能对auto的概念理解错了

吗?

【在 d****i 的大作中提到】
: 问题是几个函数分别take不同类型的参数,
: void foo(SmartShortenedName ssn);
: void foo2(AnotherClass ac);
: void foo3(YetAnotherClass yac);
: 结果你全部给他传入auto类型。。。这不是混淆静态语言和动态语言的本质本征区别吗?
: 这个时候就看出写全的优势了。

d****i
发帖数: 4809
13
compiler当然不会混淆,都是指的以后读代码的人,你这里东一个auto,那里西一个
auto,这个还能叫C++吗? 干脆叫python算了。

【在 l*********s 的大作中提到】
: 类型错误一样是编译时而不是运行时,有啥混淆的。
:
: 吗?

d****i
发帖数: 4809
14
这个auto的来历我不清楚,估计是受了微软的人在C++ committee里的影响,就是借鉴
了C#里面的var,自作聪明,实际祸害无穷。你看Unix编程文化就非常厌恶鄙视这些没
用的小trick和语法糖。

【在 d****i 的大作中提到】
: compiler当然不会混淆,都是指的以后读代码的人,你这里东一个auto,那里西一个
: auto,这个还能叫C++吗? 干脆叫python算了。

l*********s
发帖数: 5409
15
你自己写写就知道了,正常使用auto是提高可读性的。

【在 d****i 的大作中提到】
: compiler当然不会混淆,都是指的以后读代码的人,你这里东一个auto,那里西一个
: auto,这个还能叫C++吗? 干脆叫python算了。

w***g
发帖数: 5958
16
你这个如果写lambda的话就是这样的
sort(v.begin(), v.end(),
[](theStupidDumbAssLongClassNameThatIHaveToWriteTwice const &a,
theStupidDumbAssLongClassNameThatIHaveToWriteTwice const &b) {
return a.key < b.key;
});
这就是auto的必要性。至于a和b的类型,就是数组v的成员的类型。
不会有任何混淆。
关键是写程序的时候auto和决定类型的那行代码间不能隔太远,
如果超过两三行,最好还是显式把类型写出来更容易理解。

【在 s******u 的大作中提到】
: 你觉得像java的这种写法比auto更好?
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

l*******m
发帖数: 1096
17
同意,尤其使用比较好的ide

【在 l*********s 的大作中提到】
: 你自己写写就知道了,正常使用auto是提高可读性的。
n*w
发帖数: 3393
18
完全同意。jetbrain 的产品(c#)都提示换。

【在 l*******m 的大作中提到】
: 同意,尤其使用比较好的ide
T*******e
发帖数: 4928
19
抛快砖头哦。 我感觉auto还是慎用。
auto my_object =new MyClass(); //good to read
auto abc(int n) { //bad
// god knows what happens here
// ...
return whaterever;
}
auto lmn (double x){ //bad
//god knows what happens here
//...
auto whatever2 = abc(n);
//....
return whatever2;
}
// .......
auto xyz(const string& s){ //bad
//god knows what happens here
//...
auto do_you_know_me = lmn(x);
//....
return do_you_know_me;
}
g*********e
发帖数: 14401
20
狗屎特性
相关主题
Python就是爽为什么C能占据TIOBE的第一名?
我认为JVM上的语言,老大还是JavaScala的用途
Paypal抛弃Java是因为Douglas Crockford吗?大牛说说该用dart还是node?
进入Programming版参与讨论
d****i
发帖数: 4809
21
静态语言C++和Java这样的就是应该严格禁用auto,var这类的东西,否则乱七八糟成什
么样,人不像人,鬼不像鬼,C++的auto估计都是因为微软的C#的var闹得,同样C++和
Java也不应去学微软C#去加什么lambda,除了变丑变得不好理解维护以外毫无用处。一
句话,都是微软那帮人嗷嗷着带坏的。
同样动态语言,也不应去东施效颦搞什么类型,比如python3竟然想着增加类型,这个
同样是个傻逼做法,动态语言就应该严格保持动态语言的特点和灵活优势。
d****i
发帖数: 4809
22
没错,这种所谓的语言的“新特性”所带来的最大的问题就是极其容易被初学者滥用
abuse。

【在 T*******e 的大作中提到】
: 抛快砖头哦。 我感觉auto还是慎用。
: auto my_object =new MyClass(); //good to read
: auto abc(int n) { //bad
: // god knows what happens here
: // ...
: return whaterever;
: }
: auto lmn (double x){ //bad
: //god knows what happens here
: //...

f*******t
发帖数: 7549
23
最简单的缺点:
auto x = foo()
auto y = bar()
本来要定义x和y的类型,读代码的时候一目了然,有了auto以后得分别看foo()和bar()
都返回些啥,要在代码中跳转,没有趁手IDE的时候尤其浪费时间。
L****8
发帖数: 3938
24
不能接受新鲜事物 是衰老的表现

【在 d****i 的大作中提到】
: 静态语言C++和Java这样的就是应该严格禁用auto,var这类的东西,否则乱七八糟成什
: 么样,人不像人,鬼不像鬼,C++的auto估计都是因为微软的C#的var闹得,同样C++和
: Java也不应去学微软C#去加什么lambda,除了变丑变得不好理解维护以外毫无用处。一
: 句话,都是微软那帮人嗷嗷着带坏的。
: 同样动态语言,也不应去东施效颦搞什么类型,比如python3竟然想着增加类型,这个
: 同样是个傻逼做法,动态语言就应该严格保持动态语言的特点和灵活优势。

T*******e
发帖数: 4928
25
没有选择和鉴别的接受一切新事物也是不对的。

【在 L****8 的大作中提到】
: 不能接受新鲜事物 是衰老的表现
d****i
发帖数: 4809
26
这个不是什么新鲜事物,要看到任何所谓“新东西”的背后的利益和阴谋,保持雪亮的
眼睛。

【在 L****8 的大作中提到】
: 不能接受新鲜事物 是衰老的表现
h****e
发帖数: 2125
27
Scott Meyers都觉得C++已经失控了,决定退出。

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

w***x
发帖数: 105
28
c++的每个新特性都同时带来更多的麻烦和问题。
现在搞的这么复杂,真做些大的复杂产品,还真敢用c++?这么多潜在的bug可能,真出
了问题,到时候哭都来不及。
话说有时候我连gcc的O2都不太敢用。。。
b*******s
发帖数: 5216
29
新特性其实很好用,没见到太多的副作用

【在 w***x 的大作中提到】
: c++的每个新特性都同时带来更多的麻烦和问题。
: 现在搞的这么复杂,真做些大的复杂产品,还真敢用c++?这么多潜在的bug可能,真出
: 了问题,到时候哭都来不及。
: 话说有时候我连gcc的O2都不太敢用。。。

d****i
发帖数: 4809
30
这些复杂易错的所谓的“新特性“估计都是因为微软派系的人混在C++标准委员会里面
而搞出来的,微软派系和文化的人喜欢把东西搞乱搞复杂,喜欢玩花玩新语言新特性。
你看Unix都几十年了都没有什么变化杠杠的,真正的搞Unix下的系统编程的人大部分时
间只需要C就够了,到了上层一点的地方用最原始最简单的good old的C++就够了,根本
用不着那些新特性。看看Unix系统编程的圣经APUE这本书,清一色的C代码。

【在 w***x 的大作中提到】
: c++的每个新特性都同时带来更多的麻烦和问题。
: 现在搞的这么复杂,真做些大的复杂产品,还真敢用c++?这么多潜在的bug可能,真出
: 了问题,到时候哭都来不及。
: 话说有时候我连gcc的O2都不太敢用。。。

相关主题
October Headline: Dart enters the top 20 for the first timelambda的一个疑问
语言与产品lambda到底有什么好?
C++11的lambda不会破坏可读性吗?请教C++ call-by-ref & call-by-val的问题
进入Programming版参与讨论
d****i
发帖数: 4809
31
vi还是vi, Makefile还是Makefile, cc还是cc, 这就是Unix永久的魅力。

【在 d****i 的大作中提到】
: 这些复杂易错的所谓的“新特性“估计都是因为微软派系的人混在C++标准委员会里面
: 而搞出来的,微软派系和文化的人喜欢把东西搞乱搞复杂,喜欢玩花玩新语言新特性。
: 你看Unix都几十年了都没有什么变化杠杠的,真正的搞Unix下的系统编程的人大部分时
: 间只需要C就够了,到了上层一点的地方用最原始最简单的good old的C++就够了,根本
: 用不着那些新特性。看看Unix系统编程的圣经APUE这本书,清一色的C代码。

q*c
发帖数: 9453
32
你没有想过读的人?
读的人脑子就得被你当个记事本用, 你右面稍微复杂一点,还得被迫当个 parser.
喜欢这些炫玩意的就是一个词:自我中心。

【在 s******u 的大作中提到】
: 你觉得像java的这种写法比auto更好?
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice c = new
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice();

e***g
发帖数: 1696
33
不能同意你更多!

【在 d****i 的大作中提到】
: auto和lambda都非常不好
: auto有违反C++作为静态语言的宗旨,多谢一个类型又如何,让读代码的人更容易理解
: lambda完全不必要,写成单独的函数,或者用function pointer或者functor更清晰明
: 了易懂易维护,完全没有必要为了少些两行而搞得很丑

q*c
发帖数: 9453
34
问题是人靠不住。
所以对于能被容易 abuse 的特效,如果没有影响不大的话,就要制止。
写程序已经太灵活了,需要的是可靠性,不是灵活性。

【在 w***g 的大作中提到】
: 你这个如果写lambda的话就是这样的
: sort(v.begin(), v.end(),
: [](theStupidDumbAssLongClassNameThatIHaveToWriteTwice const &a,
: theStupidDumbAssLongClassNameThatIHaveToWriteTwice const &b) {
: return a.key < b.key;
: });
: 这就是auto的必要性。至于a和b的类型,就是数组v的成员的类型。
: 不会有任何混淆。
: 关键是写程序的时候auto和决定类型的那行代码间不能隔太远,
: 如果超过两三行,最好还是显式把类型写出来更容易理解。

n****l
发帖数: 6652
35
远离lamda, auto能少用就少用,可读性差。
在写template code时容易养成坏毛病。

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

n****l
发帖数: 1739
36
use the latest and greatest? what if there are some subtle compiler errors?
how to debug that in template programmed stl or boost type of shit?
it is just bad software engineering. I have no faith in what those guys are
building. what snake oil are they trying to sell? if you wanna speed with
confidence, just use plain c. enough said.

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

s******u
发帖数: 501
37
看样子C++阵营内部也要分化了
真没想到居然有这么多人发自内心的害怕而且拒绝新事物,并且找各种理由来辩解,连
微软硬毛论都出来了。要真守旧就干脆一点学Linus,完全不接受C++就是了
另外一点,我发现真正的C++程序员这个板上很少,绝大多数都是拿着C++写C程序的
q*c
发帖数: 9453
38
当年共产主义要取代资本主义也是新事物来着。
你可以去和亿万惨死的冤魂讨论一下害怕新事物。
语言真是有趣,加个 新, 人们好像突然就觉得好了。

【在 s******u 的大作中提到】
: 看样子C++阵营内部也要分化了
: 真没想到居然有这么多人发自内心的害怕而且拒绝新事物,并且找各种理由来辩解,连
: 微软硬毛论都出来了。要真守旧就干脆一点学Linus,完全不接受C++就是了
: 另外一点,我发现真正的C++程序员这个板上很少,绝大多数都是拿着C++写C程序的

b*******s
发帖数: 5216
39
静态是什么?是编译期决定,和坚持聱牙诘曲的写法有什么关系呢
我觉得有了类似auto这样的语法糖可读性和效率都提高了

【在 d****i 的大作中提到】
: 静态语言C++和Java这样的就是应该严格禁用auto,var这类的东西,否则乱七八糟成什
: 么样,人不像人,鬼不像鬼,C++的auto估计都是因为微软的C#的var闹得,同样C++和
: Java也不应去学微软C#去加什么lambda,除了变丑变得不好理解维护以外毫无用处。一
: 句话,都是微软那帮人嗷嗷着带坏的。
: 同样动态语言,也不应去东施效颦搞什么类型,比如python3竟然想着增加类型,这个
: 同样是个傻逼做法,动态语言就应该严格保持动态语言的特点和灵活优势。

L****8
发帖数: 3938
40
有了auto 才提高了可读性
尤其是写算法的时候

【在 b*******s 的大作中提到】
: 静态是什么?是编译期决定,和坚持聱牙诘曲的写法有什么关系呢
: 我觉得有了类似auto这样的语法糖可读性和效率都提高了

相关主题
请教C++ call-by-ref & call-by-val的问题c++ 如何重用一段代码,并把其中加法变成减法
Typescript是不是实际上反 functional programming 的?我对为什么使用FP的理解 (补)
auto 很爽求教一个python lambda问题
进入Programming版参与讨论
g****s
发帖数: 340
41
支持你。auto利大于弊。
一般为易读,只在type明显或太长的情况下用auto,比如make_unique, make_shared。
另外多余的信息太多肯定会影响可读性。

【在 s******u 的大作中提到】
: 看样子C++阵营内部也要分化了
: 真没想到居然有这么多人发自内心的害怕而且拒绝新事物,并且找各种理由来辩解,连
: 微软硬毛论都出来了。要真守旧就干脆一点学Linus,完全不接受C++就是了
: 另外一点,我发现真正的C++程序员这个板上很少,绝大多数都是拿着C++写C程序的

E*******1
发帖数: 3464
42
不用新特性就是了,我觉得已有的东西足够了,甚至C大部分时候就足够了,c++11和14
整的那些破烂没什么意思

【在 w***x 的大作中提到】
: c++的每个新特性都同时带来更多的麻烦和问题。
: 现在搞的这么复杂,真做些大的复杂产品,还真敢用c++?这么多潜在的bug可能,真出
: 了问题,到时候哭都来不及。
: 话说有时候我连gcc的O2都不太敢用。。。

x****u
发帖数: 44466
43
是的,WinRT编程的async模板已经非常疯狂了,我曾经花了一整天算一个展开。。。

【在 s******u 的大作中提到】
: 涉及到template的时候就不是多花点力气的问题了,搞不好要花上半个小时才能算出来
: 我这个变量的类型是什么,比方说boost spirit的中间变量类型如果完全展开来大概要
: 有上千个字符,这时候全部写出来哪里还有可读性。而且这种类型推导基本都是机械性
: 的,为什么不让compiler来帮你做这个事情?

F*********0
发帖数: 602
44
不如直接C#
years to go, C#还会先做示范

【在 w***g 的大作中提到】
: 前两天折腾seastar发现必须C++14,所以我也开始转了。科普一下C++14的几个
: 接地气的新特性。
: auto sqr (int n) { // 自动返回类型
: return n * n;
: }
: // 自动lamba类型。这个我早就很不爽了。
: sort(v.begin(), v.end(), [](auto a, auto b){return a.key < b.key;});
: // extended capturing
: async(launch::async, [x = std::move(x)]() {
: ...

j*****v
发帖数: 7717
45
像lambda这种boost早就有了。
加这些到语言里而不是通过library也是Stroustrup一直反对的

【在 h****e 的大作中提到】
: Scott Meyers都觉得C++已经失控了,决定退出。
n******n
发帖数: 12088
46
真的假的。

【在 h****e 的大作中提到】
: Scott Meyers都觉得C++已经失控了,决定退出。
T********i
发帖数: 2416
47
Tiobe上C和C++加起来还是超过第一的Java。而且C是第二,C++第三。
基本所有前几名都是C类的。
我们敢用就是要假设有人维护有人不断完善。现在看来根本不用担心C或者C++ 会死。
相反貌似这两年活的越来越好。
至于auto和lambda。我觉得都挺好。尤其是auto,解决了大问题。
但是,这两个功能我从来不用。还要等两年看看。现在刚开始用std:move。

【在 n******n 的大作中提到】
: 真的假的。
d****i
发帖数: 4809
48
tiobe自从有以来前三名就是C, C++, Java这三个C族语言轮流坐庄,后面跟的前十语言
也都是C族,C#, PHP, Python, Perl, Objective-C, JavaScript。。。这充分说明了C
语言作为现在所有主流语言的鼻祖和共同祖先的地位。

【在 T********i 的大作中提到】
: Tiobe上C和C++加起来还是超过第一的Java。而且C是第二,C++第三。
: 基本所有前几名都是C类的。
: 我们敢用就是要假设有人维护有人不断完善。现在看来根本不用担心C或者C++ 会死。
: 相反貌似这两年活的越来越好。
: 至于auto和lambda。我觉得都挺好。尤其是auto,解决了大问题。
: 但是,这两个功能我从来不用。还要等两年看看。现在刚开始用std:move。

T********i
发帖数: 2416
49
C和C++的灵活性够好了。functional paradigm也能搞一些。

了C

【在 d****i 的大作中提到】
: tiobe自从有以来前三名就是C, C++, Java这三个C族语言轮流坐庄,后面跟的前十语言
: 也都是C族,C#, PHP, Python, Perl, Objective-C, JavaScript。。。这充分说明了C
: 语言作为现在所有主流语言的鼻祖和共同祖先的地位。

t*****n
发帖数: 4908
50
本版C++的主要问题,就是面试的太在意这些边角料。实际工作中,带类的C已经够用了
。写个新轮子的机会及其少。上个C++11都是要开会讨论的。
相关主题
真正对异步有需求的应该是游戏类服务器我认为JVM上的语言,老大还是Java
PYPL: C# is the language of the year-2012Paypal抛弃Java是因为Douglas Crockford吗?
Python就是爽为什么C能占据TIOBE的第一名?
进入Programming版参与讨论
t*****n
发帖数: 4908
51
C++无论在速度/IDE/Debugger/类库等方面都没有可以代替的。不喜欢C的,C++是最合
适。而且C++也在不断进化中。

了C

【在 d****i 的大作中提到】
: tiobe自从有以来前三名就是C, C++, Java这三个C族语言轮流坐庄,后面跟的前十语言
: 也都是C族,C#, PHP, Python, Perl, Objective-C, JavaScript。。。这充分说明了C
: 语言作为现在所有主流语言的鼻祖和共同祖先的地位。

h**i
发帖数: 712
52
auto实际上是类型占位符,不是你理解的动态语言的东西。前面有人说了,编译器一样
会自动推导,报错。

【在 d****i 的大作中提到】
: 静态语言C++和Java这样的就是应该严格禁用auto,var这类的东西,否则乱七八糟成什
: 么样,人不像人,鬼不像鬼,C++的auto估计都是因为微软的C#的var闹得,同样C++和
: Java也不应去学微软C#去加什么lambda,除了变丑变得不好理解维护以外毫无用处。一
: 句话,都是微软那帮人嗷嗷着带坏的。
: 同样动态语言,也不应去东施效颦搞什么类型,比如python3竟然想着增加类型,这个
: 同样是个傻逼做法,动态语言就应该严格保持动态语言的特点和灵活优势。

d****i
发帖数: 4809
53
"实际工作中,带类的C已经够用了"
-- 不能同意更多
b*******s
发帖数: 5216
54
就算真的也没啥,我们公司以前请他讲过课,不过尔尔,他的特点在于普及

【在 n******n 的大作中提到】
: 真的假的。
s******u
发帖数: 501
55
他就是一专业C++讲课员。另外也压根没提什么是因为C++失控了所以才退出了,他自己
的说法是现在因为stackoverflow之类的流行,这个C++专业讲课员的职业慢慢变得不吃
香了,加上研究了二十多年的C++,实在也有点无聊了,所以想做点别的东西,就这样

【在 b*******s 的大作中提到】
: 就算真的也没啥,我们公司以前请他讲过课,不过尔尔,他的特点在于普及
S*******s
发帖数: 13043
56
这些新特性对开发类库很有用。对一些generic的算法也很有用。
不以为然的可能是因为平常没有遇到那些困扰所以体会不深。不用就是了。
b*******s
发帖数: 5216
57
小菊同学,回军版去

【在 x****u 的大作中提到】
: 是的,WinRT编程的async模板已经非常疯狂了,我曾经花了一整天算一个展开。。。
t****m
发帖数: 135
58
如果你用其他c++11特征比如lambda,auto不是可选项,是必须项。
lambda的型别不能被手工推导。
例子:
auto hello = [](){printf("Hello World!\n";}
t****m
发帖数: 135
59
不过话说回来,超越STL的C++模板化应用的确过于深奥了,陷入太深的确对生命有害。
D*******a
发帖数: 3688
60
是std::function

【在 t****m 的大作中提到】
: 如果你用其他c++11特征比如lambda,auto不是可选项,是必须项。
: lambda的型别不能被手工推导。
: 例子:
: auto hello = [](){printf("Hello World!\n";}

相关主题
Scala的用途语言与产品
大牛说说该用dart还是node?C++11的lambda不会破坏可读性吗?
October Headline: Dart enters the top 20 for the first timelambda的一个疑问
进入Programming版参与讨论
D*******a
发帖数: 3688
61
总得有container吧,然后就得有template吧

【在 d****i 的大作中提到】
: "实际工作中,带类的C已经够用了"
: -- 不能同意更多

h**6
发帖数: 4160
62
是大部分lambda可以转成std::function而已。也有部分uncopyable的lambda不能转成
std::function。

【在 D*******a 的大作中提到】
: 是std::function
t****m
发帖数: 135
63

错,你用typeid看看就知道了。
http://stackoverflow.com/questions/7951377/what-is-the-type-of-
The type of a lambda expression is unspecified.
It is a unique unnamed structure that overloads the function call operator.
Every instance of a lambda introduces a new type.
std::function是call operator的wrapper,支持函数指针,functor、lambda之类的玩
意。并不是一种型别。

【在 D*******a 的大作中提到】
: 是std::function
r*g
发帖数: 3159
64
lambda是纯粹语法糖吗?比起单独外面起个名字定义个函数,除了少敲些字,还有什么
深刻的地方?

【在 t****m 的大作中提到】
:
: 错,你用typeid看看就知道了。
: http://stackoverflow.com/questions/7951377/what-is-the-type-of-
: The type of a lambda expression is unspecified.
: It is a unique unnamed structure that overloads the function call operator.
: Every instance of a lambda introduces a new type.
: std::function是call operator的wrapper,支持函数指针,functor、lambda之类的玩
: 意。并不是一种型别。

s******u
发帖数: 501
65
lambda本质上是anonymous function,也是nested function(函数内部定义函数)的
一种形式。C++引进lambda也就意味着必须要支持nested function,同时也要引入
closures,first-class function这些重要的概念。
当然最终结果是给本来就很灵活的C++多提供了一种paradigm, 至于是不是真的需要,
那就是见仁见智的事情了,没看前面吵的这么凶啊,呵呵

【在 r*g 的大作中提到】
: lambda是纯粹语法糖吗?比起单独外面起个名字定义个函数,除了少敲些字,还有什么
: 深刻的地方?

t****m
发帖数: 135
66

说的好。
要用过其他函数型语言,或者用javascript写过严肃程序的人就不会这样问了。lambda
可不仅仅是少敲入几个函数名称。

【在 s******u 的大作中提到】
: lambda本质上是anonymous function,也是nested function(函数内部定义函数)的
: 一种形式。C++引进lambda也就意味着必须要支持nested function,同时也要引入
: closures,first-class function这些重要的概念。
: 当然最终结果是给本来就很灵活的C++多提供了一种paradigm, 至于是不是真的需要,
: 那就是见仁见智的事情了,没看前面吵的这么凶啊,呵呵

s***o
发帖数: 2191
67
wdong对golang是什么看法?
w***g
发帖数: 5958
68
这个我已经写过了
http://www.mitbbs.com/article1/Programming/31446453_3_0.html

【在 s***o 的大作中提到】
: wdong对golang是什么看法?
A*******e
发帖数: 2419
69
返回类型是?

【在 s******u 的大作中提到】
: vs.
: auto sso = new SmartShortenedName();
: 我觉得完全没有影响任何的可读性

T********i
发帖数: 2416
70
你这篇貌似写的有点问题。

【在 w***g 的大作中提到】
: 这个我已经写过了
: http://www.mitbbs.com/article1/Programming/31446453_3_0.html

相关主题
lambda的一个疑问Typescript是不是实际上反 functional programming 的?
lambda到底有什么好?auto 很爽
请教C++ call-by-ref & call-by-val的问题c++ 如何重用一段代码,并把其中加法变成减法
进入Programming版参与讨论
s***o
发帖数: 2191
71
啥问题?我看了wdong这篇文章正想花时间好好看一下go呢。老魏对go是啥看法?

【在 T********i 的大作中提到】
: 你这篇貌似写的有点问题。
f*z
发帖数: 421
72
解决了大问题,您为啥从来不用?

【在 T********i 的大作中提到】
: 你这篇貌似写的有点问题。
1 (共1页)
进入Programming版参与讨论
相关主题
Scala的用途Typescript是不是实际上反 functional programming 的?
大牛说说该用dart还是node?auto 很爽
October Headline: Dart enters the top 20 for the first timec++ 如何重用一段代码,并把其中加法变成减法
语言与产品我对为什么使用FP的理解 (补)
C++11的lambda不会破坏可读性吗?求教一个python lambda问题
lambda的一个疑问真正对异步有需求的应该是游戏类服务器
lambda到底有什么好?PYPL: C# is the language of the year-2012
请教C++ call-by-ref & call-by-val的问题Python就是爽
相关话题的讨论汇总
话题: c++话题: auto话题: lambda话题: 类型