c++17 发布了,大家怎么看! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tom008
V2EX    C

c++17 发布了,大家怎么看!

  •  
  •   Tom008 2016-07-19 09:52:24 +08:00 6778 次点击
    这是一个创建于 3386 天前的主题,其中的信息可能已经有所发展或是发生改变。
    66 条回复    2016-08-19 01:23:29 +08:00
    pheyer
        1
    pheyer  
       2016-07-19 10:10:09 +08:00
    怎么是这么快,前年还在用 c++14
    shuax
        2
    shuax  
       2016-07-19 10:15:02 +08:00 via Android
    来源?
    raysonx
        3
    raysonx  
       2016-07-19 10:17:15 +08:00 via Android
    还是 C 好。 C++这个异端( doge )
    Tom008
        4
    Tom008  
    OP
       2016-07-19 10:17:45 +08:00
    hitmanx
        5
    hitmanx  
       2016-07-19 10:20:44 +08:00
    c++11 还没完全掌握呢。学 c++11 的时候有种感觉,这门语言真是变得越来越复杂了,很多以前很简单很确定的东西,在 c++11 里由于学艺不精感觉变得确定性降低了,比如 move 语义带来的一些问题。
    chrishine
        6
    chrishine  
       2016-07-19 10:23:26 +08:00
    @raysonx 国内 C++ 实际标准还是 C++03 吧, C++11 都没什么大公司去用(前两年还有嘲笑说国内的 C++ 都被智子锁死了)。国内 C 实际标准也是 C99 吧,稍微新的标准也没多少公司用。
    htfy96
        7
    htfy96  
       2016-07-19 10:29:31 +08:00
    感觉加进来的 Feature 还是太少,比如说很重要的模块就没进来。

    话说现在的处境和之前吐槽前端变得复杂的那一帖有些相似。

    不过我觉得业务的复杂必然会带来语法的复杂。 C++感觉可能历史包袱比较重是最大的问题。虽然 Rust 设计理念很好,但是学习曲线依旧比较陡峭。
    evanmeng
        8
    evanmeng  
       2016-07-19 10:33:16 +08:00
    乐观估计 2020 年大概能用上?
    louk78
        9
    louk78  
       2016-07-19 10:36:05 +08:00
    语言一通百通,无论怎样变化的,程序的灵魂始终还是是算法
    initialdp
        10
    initialdp  
       2016-07-19 10:40:02 +08:00 via Android
    过度设计了
    thfurior
        11
    thfurior  
       2016-07-19 10:47:33 +08:00 via Android
    C++11 还没普及呢,标准委员会迈的步子是不是太大了
    owt5008137
        12
    owt5008137  
       2016-07-19 10:51:24 +08:00 via Android
    @htfy96 我也蛮期待 Module 的,可以大幅提升编译速度啊,好像还是不久前从 c++17 移到 5s 里的
    raysonx
        13
    raysonx  
       2016-07-19 10:52:56 +08:00
    @chrishine C++ is a horrible language.
    个人觉得 C++现在的语法特性太多太繁杂了,已经没有兴趣去啃这些所谓的语言特性了。
    raysonx
        14
    raysonx  
       2016-07-19 10:54:07 +08:00
    C++ is a horrible language. -- Linus Torvalds
    qinxi
        15
    qinxi  
       2016-07-19 10:54:57 +08:00
    @chrishine C99 是大学课本,哈哈哈
    k9982874
        16
    k9982874  
       2016-07-19 10:55:05 +08:00 via iPhone
    @chrishine c++11 包 boost 等生产库的一些功能纳入了标准,其实你一直在用 c++11
    yhxx
        17
    yhxx  
       2016-07-19 10:55:31 +08:00
    C++ 11 还没学好呢。。。
    bingx86
        18
    bingx86  
       2016-07-19 11:14:00 +08:00
    怎么说呢。。。。我还停留在 C++ 98 的时代,而且当年都是当 C 写的
    Tom008
        19
    Tom008  
    OP
       2016-07-19 11:45:33 +08:00
    互联网时代,还是 java 和 php 好!(后端开发)
    stormpeach
        20
    stormpeach  
       2016-07-19 12:26:32 +08:00
    c++可以被视为多种语言的联邦。。。。。现在他还在攻城拔寨。

    在工程里面更多的是用到它的子集吧,不过它的发展对其他语言是有示范意义的。
    congeec
        21
    congeec  
       2016-07-19 12:29:51 +08:00
    @owt5008137 你不用 header guard? 不用 ccache?
    araraloren
        22
    araraloren  
       2016-07-19 12:31:11 +08:00
    c++就是语言大佬的实验田,什么东西想起来了添加进去~~ 实验一下。。
    Smirnoff
        23
    Smirnoff  
       2016-07-19 12:48:13 +08:00   1
    委员会那帮老家伙,都愿意创新, c++er ,连学习的勇气都没有吗,
    saberlion
        24
    saberlion  
       2016-07-19 13:00:51 +08:00
    你问我兹磁不兹磁,我当然是兹磁的。
    skydiver
        25
    skydiver  
       2016-07-19 13:01:05 +08:00
    上个月的新闻吧…… toooooold
    glogo
        26
    glogo  
       2016-07-19 13:04:25 +08:00
    心好累,感觉再也不会再爱上 C++了
    Symars
        27
    Symars  
       2016-07-19 13:07:20 +08:00
    sc3263
        28
    sc3263  
       2016-07-19 13:08:31 +08:00
    多点特性多点便利。当然是支持咯。
    ahjsrhj
        29
    ahjsrhj  
       2016-07-19 13:09:21 +08:00 via Android
    @evanmeng 太乐观了吧
    pagict
        30
    pagict  
       2016-07-19 13:09:30 +08:00
    @evanmeng 确实是太乐观了 看看 c++11 的普及率。。。
    SlipStupig
        31
    SlipStupig  
       2016-07-19 13:13:16 +08:00
    一大堆编译器又要不支持了!
    neilp
        32
    neilp  
       2016-07-19 13:15:41 +08:00
    c++ 标准委员会的那帮人, 就是出来刷存在感的. 没事了,大家散了吧.
    SuperFashi
        33
    SuperFashi  
       2016-07-19 13:17:02 +08:00 via Android
    反正基本上所有 oi 连 11 都不支持(抠鼻
    zysuper
        34
    zysuper  
       2016-07-19 13:19:14 +08:00
    没啥实际意义,用 c 艹还是继续用,不用 c 艹的还是继续不用。
    zysuper
        35
    zysuper  
       2016-07-19 13:23:17 +08:00
    目测了一下, 17 加了不少好东西啊,通用编程的 file system , networking , transactional memory 。。。
    tempuseraccount
        36
    tempuseraccount  
       2016-07-19 13:27:29 +08:00
    刚把 C++11 中的东西看得差不多……
    工作中用的还是 C++03 呢
    crashX
        37
    crashX  
       2016-07-19 16:44:04 +08:00
    其他语言过来的表示新语法肯定比之前的好用且合理, C++应该去掉那些古老的语法和规则。只增不减只会提高入门门槛,对社区繁荣不是好事。
    acros
        38
    acros  
       2016-07-19 16:51:50 +08:00
    我接触的一些工程项目,小一点如 cocos2dx (好像也不小了),或者 ue4 这类庞大项目,对 C++11 支持还是很积极的
    尤其是游戏引擎,新的基本都推荐 IDE 用 VS2015 了, 反正是添加新特性,又不是不兼容以前代码了
    jasonlz
        39
    jasonlz  
       2016-07-19 17:12:48 +08:00
    C++在很多地方还是无法替代的语言, C++11 很多特性已经给 C++带来很多革命性的变化,大多数的第三方开源库都已经全面 C++11 化, C++创立之初的宗旨就是灵活高效,不以固定范式来约束开发者,这样给开发者带来最大的自由度的同时也是增加了很多学习成本。个人觉得, C++11 以来的新变化,让 C++变得更好用了。
    wangxn
        40
    wangxn  
       2016-07-19 17:34:09 +08:00
    现在高校的 OJ 一般不支持 C++11 。但是像 LeetCode 什么的都是支持的了。
    有了 C++11 ,可以用 auto 、 range-based for loop 、 unordered_xx 、 template<x<y>>这些大杀器,很是方便。
    suckli
        41
    suckli  
       2016-07-19 17:37:44 +08:00
    然而我司的 GCC 连 C++11 的特性都不支持
    yehuobumie
        42
    yehuobumie  
       2016-07-19 17:48:16 +08:00
    挺强的
    yehuobumie
        43
    yehuobumie  
       2016-07-19 17:48:45 +08:00
    <a>***</a>
    strwei
        44
    strwei  
       2016-07-19 17:50:47 +08:00
    以前我一直打的是 c 艹,现在知道了原来叫 c 加加(手动滑稽
    allenx
        45
    allenx  
       2016-07-19 17:53:23 +08:00   1
    c++基本上在客户端领域普及比较快,包括 PC/Android/iOS 。在服务器领域简直是老牛拉破车,各种被扯后腿,传说百度的 GCC 被三体人锁定在 3.x 再也上不来了。
    ilotuo
        46
    ilotuo  
       2016-07-19 17:57:08 +08:00   1
    一直把 c+当 c 用..
    inahesun8712
        47
    inahesun8712  
       2016-07-19 18:08:28 +08:00
    也学 chrome 刷版本号了 不知道编译器能不能跟上,
    jeffersonpig
        48
    jeffersonpig  
       2016-07-19 18:43:27 +08:00
    想起上礼拜把写好的代码扔公司开发环境上编译,各种 C++11 的 std 函数报错
    fetich
        49
    fetich  
       2016-07-19 18:49:53 +08:00
    C++11 到 14 ,感觉花了很长时间,到 17 怎么有种瞬间的错觉
    everettjf
        50
    everettjf  
       2016-07-19 20:36:52 +08:00
    可以继续练剑了
    kingddc314
        51
    kingddc314  
       2016-07-19 22:04:09 +08:00
    17 年,那就得用 C 艹 17 ,今年,还是用 11 吧。。
    billlee
        52
    billlee  
       2016-07-19 23:09:55 +08:00
    还在用 C++0x
    russj
        53
    russj  
       2016-07-19 23:40:26 +08:00
    只是定了个标准,明年才发布呢
    azh7138m
        54
    azh7138m  
       2016-07-19 23:46:31 +08:00 via Android
    @wangxn OJ 上主要是算法题, leetcode 不是算法题,主要是熟悉熟悉语法和一些小技巧,其实现在的 OJ 可以用 C++11 的,管理员懒得搞而已
    htfy96
        55
    htfy96  
       2016-07-20 00:02:00 +08:00
    @wangxn Codeforces 也支持 C++11
    oska874
        56
    oska874  
       2016-07-20 09:22:52 +08:00
    去年才开始用 c++11 和 c99
    zywx
        57
    zywx  
       2016-07-20 10:24:38 +08:00
    我上的大学里还在用 VC++6.0 上 c++课,想普及 c++11 真是难
    不过 c++11 已经很方便了,对 17 持观望态度
    linux40
        58
    linux40  
       2016-07-20 10:53:14 +08:00 via Android
    关于模块,感觉 c++之前有很多特性就是来缩短编译时间的,然而还是不是很令人满意,终于提出模块的话,之前有些就有些多余了。。。
    linux40
        59
    linux40  
       2016-07-20 10:56:18 +08:00 via Android
    还有像文件系统啊,网络啊,这些也太大头了吧,是要学 java ,把什么都放进标准库么。。。
    hitmanx
        60
    hitmanx  
       2016-07-20 11:10:11 +08:00
    很多库是 boost 里一点点搬过来的吧,其实蛮方便的,尤其是写跨平台的应用时。每个OS比如文件系统\线程库都有自己的一套,自己写 wrapper 都得写半天,还不如它的 bug 少、稳定.
    cchange
        61
    cchange  
       2016-07-20 23:42:44 +08:00 via iPhone
    还在用最古老的 c++ 98 的飘过
    lsmgeb89
        62
    lsmgeb89  
       2016-07-29 11:37:08 +08:00
    挺好的,标准库丰富了,省得自己造轮子了。
    jocover
        63
    jocover  
       2016-07-29 16:20:02 +08:00
    c++11 还没怎么用呢
    owt5008137
        64
    owt5008137  
       2016-08-13 21:18:36 +08:00 via Android
    @congeec header guard 是啥呀?预编译头吗? ccache 的提升其实非常有限。特别是用 cmake 的时候
    owt5008137
        65
    owt5008137  
       2016-08-13 21:27:38 +08:00 via Android
    @congeec 刚刚搜了一下,还真是忘了这个东西叫 header guard 。但是无论用 header guard 还是#progma once 。解决不了真正的编译速度的问题,真正影响编译速度的是大量的模板推断和头文件依赖,只要头文件一改,所以依赖这个头文件的文件都要重新编译。但是 Module 可以解决掉头文件依赖的问题
    FrankHB
        66
    FrankHB  
       2016-08-19 01:23:29 +08:00
    @owt5008137 “可以”也并没有什么卵用。
    要知道#include <h-char-sequence>这种形式可是整个 implementation-defined ,只要实现高兴都可以允许塞个图灵完备的语言实现进<>中间去。实际呢?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2464 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 06:14 PVG 14:14 LAX 23:14 JFK 02:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86