哪位能介绍一下C++14, 我顺便就给未来7OR9天长假散粉了

healer_kx 2013-09-22 10:06:45
哪位能介绍一下C++14, 我顺便就给未来 7||9 天长假散粉了

...全文
779 点赞 收藏 66
写回复
66 条回复
切换为时间正序
请发表友善的回复…
发表回复
stereoMatching 2013-09-27
引用 51 楼 FrankHB1989 的回复:
[quote=引用 17 楼 stereoMatching 的回复:] [quote=引用 5 楼 healer_kx 的回复:] C++这是作死的节奏?
刚好相反,c++是越改越简单 新标准其实简化了很多难用的老技术 例如c++11的lambda让stl好用非常多 c++14的polymorphic lambda则强化了c++11的lambda c++11

std::transform(std::begin(a), std::end(a), std::begin(b), [](int a){return a + 50;});
c++14

std::transform(std::begin(a), std::end(a), std::begin(b), [](auto a){return a + 50;});
这一来,以后a的type改变的时候,我们就不用连lambda都一起改了 说穿了,那个auto就是一个template parameter而已 这是一个本来就该有的功能,c++11碍于一些技术障碍没来得及加进去
引用 8 楼 sniffer12345 的回复:
我相当怀疑这样改下去,以后编译器报错的地方到底能不能看懂了。。
这你不用担心,错误讯息只会越来越容易阅读 c++的concepts有了很大的进展,最迟应该在c++17就会引入 以后我们再也不用学习如何解读那犹如密码般难读的错误讯息 不管那一门语言,随着发展标准一定是越来越厚的 时代在变,语言也在进化 就连c也是一直在扩充和改变 你问问看身边的人有谁懂c11多了什么东西? 为何?因为懒惰啊,新东西出来了又要重学 我又重“自以为的专家”降级成新手? 他们可不愿意花这些时间 只好拼命贬低新的发明了[/quote] 其实的确是作死,尽管对普通用户一般可以忽略。 标准和实现维护的成本越来越大,提交新特性考虑的兼容包袱越来越重。很多改变不是一开始就有明确的目的,而是发现了不协调的地方得修补。一个例子:xvalue的引入就是消除类型系统和左值性复杂交互(简化引用类型和左值的关系这点早在1992年就有paper提了)和冗余的失败。 另外,实际上至少标准库的一部分文本还是有很大冗余(就是“复制粘贴”,典型的如Clause 30里的一些requirements全是重复的)的,这部分倒真不一定“越来越厚”。 [/quote] 普通用户可以忽略就行了,编译器的实现什么的是别人的事情 重要的是让一般用户觉得这们语言越来越容易使用 http://www.lextrait.com/vincent/implementations.html 从这里可以看到很多重量级的大型软体还是采用c++ windows的OS甚至有越来越多代码采用c++ 如果linus不是c++黑或c++小白 linux大概也早就跟windows,mac一样混入c++了(linux的codes已经是越来越难维护) gcc受到竞争对手clang的刺激后更是加速向c++迈进 gcc48已经完全改由c++实现
回复
jiandingzhe 2013-09-26
引用 60 楼 Vegertar 的回复:
从C++0x变成C++1x,C++1y我就已经不企盼了。 芯片越来越快,系统级的C语言仍然不可取代,但应用级的Python, JS with Node,Ruby之流大兴,google chromium带起的web app等,若非数千万行的代码遗留,C++早就玩完了。
那些脚本和HTML做的应用,执行效率太低了。
回复
unituniverse2 2013-09-25
即使性能不是问题,不管是java还是.net目前仍然都存在耗电问题。 平台性能翻番很多倍,以前的程序用C写的现在用脚本实现,仍然只得到一样的功能和执行速度上的效果。和以前机器直接针对任务进行处理相反,现在机器的大部分工作却都做到了模拟执行上去了
回复
赵4老师 2013-09-25
语法糖跟蜂蜜一样甜就够了; 要是甜的象糖精,就不太实用了。 再甜的比糖精还甜好几十倍,我看跟毒药也没两样了。
回复
qscool1987 2013-09-24
大概有一年半没来论坛了,以前总过于追求细节,恨不得把所有细节,甚至是反汇编代码的每一句都搞清楚,花费巨大的时间从标准的第一页开始啃,的确我学到不少知识,可是让我设计系统我还是不行撒。 我就开始反思,我要搞什么呢?做系统设计真的需要将语言的细节搞的那么清楚,算法搞的那么叼么? 在看过系统分析与设计相关书籍后,才明白这和细节实现根本就是不同的概念,原来我的兴趣在于系统分析与设计而不在于方法和实现。 所以领域抽象、对象职责分配才是我该搞的玩意,至于这些所设计到的语言知识也就是C++中关于类的部分而已,想设计的好呢就参阅下设计模式进行重构罢了 C++语言你想学好是非常苦难的,我的书桌上关于C++方面的经典书籍就有十多本,而且每一本都看过好几遍,但是我真没觉得我的C++有多好,原因是它的类容太多了,你学了只是学了而已,你不用马上就忘,工作中你很多用不上,有谁敢说他工作中每天都会用到C++各方面的特性?所以我只保证自己在用的时候能马上理解就可以了,没有必要一直保持时刻都能信手拈来的地步,如果你是那样,我对你表示深深的敬意。 精力有限啊,这辈子做好一件事人就能出名了
回复
tarena_1031 2013-09-24
看不懂,但是貌似很厉害的样子,
回复
qq120848369 2013-09-24
引用 59 楼 healer_kx 的回复:
离长假还有日子,你们不打算继续了?
是啊, C++11高手别保留了, 赶紧给大家教点干货, 实在是学不会.
回复
Vegertar 2013-09-24
从C++0x变成C++1x,C++1y我就已经不企盼了。 芯片越来越快,系统级的C语言仍然不可取代,但应用级的Python, JS with Node,Ruby之流大兴,google chromium带起的web app等,若非数千万行的代码遗留,C++早就玩完了。
回复
healer_kx 2013-09-24
离长假还有日子,你们不打算继续了?
回复
hankcs 2013-09-23
说得好,有理有据还有代码干货
这一楼可以加精了
------------------------------------------------------AutoCSDN签名档------------------------------------------------------
码农场——码农播种代码、放牧思想的农场!



引用 17 楼 stereoMatching 的回复:
[quote=引用 5 楼 healer_kx 的回复:]
C++这是作死的节奏?

刚好相反,c++是越改越简单
新标准其实简化了很多难用的老技术
例如c++11的lambda让stl好用非常多
c++14的polymorphic lambda则强化了c++11的lambda

c++11

std::transform(std::begin(a), std::end(a), std::begin(b), [](int a){return a + 50;});


c++14

std::transform(std::begin(a), std::end(a), std::begin(b), [](auto a){return a + 50;});


这一来,以后a的type改变的时候,我们就不用连lambda都一起改了
说穿了,那个auto就是一个template parameter而已
这是一个本来就该有的功能,c++11碍于一些技术障碍没来得及加进去

引用 8 楼 sniffer12345 的回复:
我相当怀疑这样改下去,以后编译器报错的地方到底能不能看懂了。。

这你不用担心,错误讯息只会越来越容易阅读
c++的concepts有了很大的进展,最迟应该在c++17就会引入
以后我们再也不用学习如何解读那犹如密码般难读的错误讯息

不管那一门语言,随着发展标准一定是越来越厚的
时代在变,语言也在进化
就连c也是一直在扩充和改变

你问问看身边的人有谁懂c11多了什么东西?
为何?因为懒惰啊,新东西出来了又要重学
我又重“自以为的专家”降级成新手?
他们可不愿意花这些时间
只好拼命贬低新的发明了[/quote]
回复
ken_scott 2013-09-23
引用 50 楼 FrankHB1989 的回复:
[quote=引用 48 楼 ken_scott 的回复:] [quote=引用 32 楼 FrankHB1989 的回复:] [quote=引用 10 楼 ken_scott 的回复:] 升级是只是给部分C++使用者使用的 有的公司提倡用BOOST,有的连模板的很少用,程序员的理解的C++知识差距也越来越大...... 再这么下去,我都不敢说自己是C++程序员了 谁能翻译下C++11标准,我网购... (好吧,自己不努力,也只能晒死在沙滩上了)
你拿得到ISO Office的许可再说…… [/quote] 翻译再卖钱也要许可,C++什么时候成为营利性机构了? (就算要获取许可,估计也不难吧)[/quote] 侵权跟是否营利没必然联系(虽然ISO C++显然是卖钱的)。 ISO/IEC C++的著作权所有者很明显:“© ISO/IEC”。 www.iso.org/iso/home/policies.htm‎指出: All ISO publications are also protected by copyright. The copyright ownership of ISO is clearly indication on every ISO publication. Any unauthorized use such as copying, scanning or distribution is prohibited. 这里没提到翻译,不过引用http://www.iso.org/iso/copyright_information_brochure.pdf: Copyright infringement occurs when intellectual property is reproduced, performed, broadcast, translated or adapted without the express permission of the creator or the group/individual licensed to handle the material in question. 下文中购买的授权也不包括翻译权,所以还是得咨询ISO copyright office: Requests should be addressed to the ISO Central Secretariat : ISO copyright office Case postale 56 CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail copyright@iso.org Web www.iso.org (这种政策由来已久:http://www.chinaipmagazine.com/en/journal-show.asp?id=748) 只是几个章节的翻译可以按著作权法的合理使用解释不受限制(就像我引用上面的材料一样),但是全文明显行不通。 JTC1/WG21的paper可能问题小一点,但是working draft看来也没有授权,尽管比起某些FCD/FDIS来说不会有禁止复制的警告。 [/quote] 好吧,只能自己努力了
回复
肩抗轨道炮 2013-09-23
回复
申祷无 2013-09-23
引用 38 楼 halleyzhang3 的回复:
其实我希望c++涵盖所有类型的编程语言特性,什么解释性的语言、函数编程都包容进去,但是分成不同的子集,写不同类型的程序用不同的子集,比如公司里做界面的我们允许他用所有的子集、做内核的只允许他用最小子集。这样我们永远不用学习新的语言了:)
Effective C++ 的条款1就是“视C++为一个语言联邦”。
回复
FrankHB1989 2013-09-23
引用 17 楼 stereoMatching 的回复:
[quote=引用 5 楼 healer_kx 的回复:] C++这是作死的节奏?
刚好相反,c++是越改越简单 新标准其实简化了很多难用的老技术 例如c++11的lambda让stl好用非常多 c++14的polymorphic lambda则强化了c++11的lambda c++11

std::transform(std::begin(a), std::end(a), std::begin(b), [](int a){return a + 50;});
c++14

std::transform(std::begin(a), std::end(a), std::begin(b), [](auto a){return a + 50;});
这一来,以后a的type改变的时候,我们就不用连lambda都一起改了 说穿了,那个auto就是一个template parameter而已 这是一个本来就该有的功能,c++11碍于一些技术障碍没来得及加进去
引用 8 楼 sniffer12345 的回复:
我相当怀疑这样改下去,以后编译器报错的地方到底能不能看懂了。。
这你不用担心,错误讯息只会越来越容易阅读 c++的concepts有了很大的进展,最迟应该在c++17就会引入 以后我们再也不用学习如何解读那犹如密码般难读的错误讯息 不管那一门语言,随着发展标准一定是越来越厚的 时代在变,语言也在进化 就连c也是一直在扩充和改变 你问问看身边的人有谁懂c11多了什么东西? 为何?因为懒惰啊,新东西出来了又要重学 我又重“自以为的专家”降级成新手? 他们可不愿意花这些时间 只好拼命贬低新的发明了[/quote] 其实的确是作死,尽管对普通用户一般可以忽略。 标准和实现维护的成本越来越大,提交新特性考虑的兼容包袱越来越重。很多改变不是一开始就有明确的目的,而是发现了不协调的地方得修补。一个例子:xvalue的引入就是消除类型系统和左值性复杂交互(简化引用类型和左值的关系这点早在1992年就有paper提了)和冗余的失败。 另外,实际上至少标准库的一部分文本还是有很大冗余(就是“复制粘贴”,典型的如Clause 30里的一些requirements全是重复的)的,这部分倒真不一定“越来越厚”。
回复
FrankHB1989 2013-09-23
引用 48 楼 ken_scott 的回复:
[quote=引用 32 楼 FrankHB1989 的回复:] [quote=引用 10 楼 ken_scott 的回复:] 升级是只是给部分C++使用者使用的 有的公司提倡用BOOST,有的连模板的很少用,程序员的理解的C++知识差距也越来越大...... 再这么下去,我都不敢说自己是C++程序员了 谁能翻译下C++11标准,我网购... (好吧,自己不努力,也只能晒死在沙滩上了)
你拿得到ISO Office的许可再说…… [/quote] 翻译再卖钱也要许可,C++什么时候成为营利性机构了? (就算要获取许可,估计也不难吧)[/quote] 侵权跟是否营利没必然联系(虽然ISO C++显然是卖钱的)。 ISO/IEC C++的著作权所有者很明显:“© ISO/IEC”。 www.iso.org/iso/home/policies.htm‎指出: All ISO publications are also protected by copyright. The copyright ownership of ISO is clearly indication on every ISO publication. Any unauthorized use such as copying, scanning or distribution is prohibited. 这里没提到翻译,不过引用http://www.iso.org/iso/copyright_information_brochure.pdf: Copyright infringement occurs when intellectual property is reproduced, performed, broadcast, translated or adapted without the express permission of the creator or the group/individual licensed to handle the material in question. 下文中购买的授权也不包括翻译权,所以还是得咨询ISO copyright office: Requests should be addressed to the ISO Central Secretariat : ISO copyright office Case postale 56 CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail copyright@iso.org Web www.iso.org (这种政策由来已久:http://www.chinaipmagazine.com/en/journal-show.asp?id=748) 只是几个章节的翻译可以按著作权法的合理使用解释不受限制(就像我引用上面的材料一样),但是全文明显行不通。 JTC1/WG21的paper可能问题小一点,但是working draft看来也没有授权,尽管比起某些FCD/FDIS来说不会有禁止复制的警告。
回复
ken_scott 2013-09-23
引用 47 楼 jiandingzhe 的回复:
[quote=引用 10 楼 ken_scott 的回复:] 升级是只是给部分C++使用者使用的 有的公司提倡用BOOST,有的连模板的很少用,程序员的理解的C++知识差距也越来越大...... 再这么下去,我都不敢说自己是C++程序员了 谁能翻译下C++11标准,我网购... (好吧,自己不努力,也只能晒死在沙滩上了)
感觉11最大的改进就三点:lambda表达式,右值引用与move语义,扩充的标准库。[/quote] move语意(实现?用法?) 感觉和Effective C++中讲的swap(wrapper?)手法相似...... lambda觉得很好,方便读写代码
回复
ken_scott 2013-09-23
引用 32 楼 FrankHB1989 的回复:
[quote=引用 10 楼 ken_scott 的回复:] 升级是只是给部分C++使用者使用的 有的公司提倡用BOOST,有的连模板的很少用,程序员的理解的C++知识差距也越来越大...... 再这么下去,我都不敢说自己是C++程序员了 谁能翻译下C++11标准,我网购... (好吧,自己不努力,也只能晒死在沙滩上了)
你拿得到ISO Office的许可再说…… [/quote] 翻译再卖钱也要许可,C++什么时候成为营利性机构了? (就算要获取许可,估计也不难吧)
回复
jiandingzhe 2013-09-23
引用 10 楼 ken_scott 的回复:
升级是只是给部分C++使用者使用的 有的公司提倡用BOOST,有的连模板的很少用,程序员的理解的C++知识差距也越来越大...... 再这么下去,我都不敢说自己是C++程序员了 谁能翻译下C++11标准,我网购... (好吧,自己不努力,也只能晒死在沙滩上了)
感觉11最大的改进就三点:lambda表达式,右值引用与move语义,扩充的标准库。
回复
清竹小雨 2013-09-23
来接分的。。。
回复
发动态
发帖子
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
社区公告
暂无公告