V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tom008
V2EX  ›  C

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

  •  
  •   Tom008 · 2016-07-19 09:52:24 +08:00 · 6287 次点击
    这是一个创建于 3060 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.