V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acgnsstech
V2EX  ›  问与答

C++17 标准正式发布:开发者可更简单地编写和维护代码 为什么我感觉越来越不能简单地编写代码了呢?/??

  •  1
     
  •   acgnsstech · 2017-12-06 09:54:35 +08:00 · 3608 次点击
    这是一个创建于 2544 天前的主题,其中的信息可能已经有所发展或是发生改变。
    C++ 17 是对 C++ 语言的重大更新,引入了许多新的语言特性:

    UTF-8 字符文字

    折叠表达式 (fold expressions):用于可变的模板

    内联变量 (inline variables):允许在头文件中定义变量

    在 if 和 switch 语句内可以初始化变量

    结构化绑定 (Structured Binding):for (auto [key,value] : my_map) {…}

    类模板参数规约 (Class Template Argument Deduction):用 pair p{1, 2.0}; 替代 pair<int, double>{1, 2.0};

    此外,C++ 17 还带来了并行 STL,派生自 Boost 的文件系统库等其他特性。


    GCC 和 LLVM/Clang 都有效地提供了完整的 C++ 17 支持。
    24 条回复    2017-12-07 10:12:23 +08:00
    trys1
        1
    trys1  
       2017-12-06 10:01:36 +08:00 via Android
    自从遇见了 go
    fyooo
        2
    fyooo  
       2017-12-06 10:18:50 +08:00
    然而我厂还是用 C++11
    geelaw
        3
    geelaw  
       2017-12-06 10:43:20 +08:00   ❤️ 1
    不懂现在的翻译是什么情况—— deduction 是推导,不是归约,归约是 reduction。
    geelaw
        4
    geelaw  
       2017-12-06 10:43:34 +08:00
    以及“ GCC 和 LLVM/Clang 都有效地提供了完整的 C++ 17 支持。”这话未免说得太满
    vvvvzhang
        5
    vvvvzhang  
       2017-12-06 11:19:13 +08:00
    c++...
    再简单也是中级语言,比高级语言难太多了。。。
    harry890829
        6
    harry890829  
       2017-12-06 11:23:00 +08:00
    @fyooo #2 我还在用 c++98 标准……
    soli
        7
    soli  
       2017-12-06 11:30:03 +08:00   ❤️ 1
    CentOS 制约着 C++ 新标准的推广。

    待过的公司几乎都用 CentOS 做线上系统,而 CentOS7 最新的 GCC 是 4.8。
    这个版本的 GCC 连 C++11 都支持不全呢。
    shanechiu
        8
    shanechiu  
       2017-12-06 11:32:51 +08:00
    @soli 源码安装 GCC 不行吗?
    shanechiu
        9
    shanechiu  
       2017-12-06 11:34:08 +08:00
    @acgnsstech 新特性有什么好处?其实我还在学习 C++11 了
    wwqgtxx
        10
    wwqgtxx  
       2017-12-06 11:47:10 +08:00 via iPhone
    @soli 部署上编译好的二进制不就得了
    BigNerd
        11
    BigNerd  
       2017-12-06 11:47:19 +08:00
    还记得几年前写 C++ 11 的场景,后来转方向了。不得不说能把 C++ 写到一般意义上的好,我都非常佩服。
    3dwelcome
        12
    3dwelcome  
       2017-12-06 11:47:54 +08:00
    @soli 这个锅 centos 表示不背。这世界上有个叫 cross compiler 的。
    coderluan
        13
    coderluan  
       2017-12-06 11:53:23 +08:00
    个人观点:
    将来要么 C 语言(偏性能,可以带点 C++扩展),要么 Java/Python/Go (偏效率),C++想两全齐美,实际上已经跑偏了。
    soli
        14
    soli  
       2017-12-06 11:55:41 +08:00
    @wwqgtxx
    @3dwelcome

    我不相信你们能说服运维部门这么干。
    vegito2002
        15
    vegito2002  
       2017-12-06 12:01:04 +08:00
    @coderluan 我现在其实也是这个路线. 不过我是 Python 换 Swift.
    3dwelcome
        16
    3dwelcome  
       2017-12-06 12:07:01 +08:00
    @soli 有啥不能说服的,cross-compiler 就是非源码发布二进制执行包而已。

    现在的运维用 docker 嗨的飞起,还不是一样没有源代码。
    sfqtsh
        17
    sfqtsh  
       2017-12-06 12:19:53 +08:00 via Android
    支持
    CYKun
        18
    CYKun  
       2017-12-06 13:49:20 +08:00 via Android
    C++为什么这么喜欢折腾语法?
    redsonic
        19
    redsonic  
       2017-12-06 14:55:13 +08:00
    智商低了看不懂的语言。 到 C+3X 的时候估计只有大佬和 AI 在写 C++代码给自己打 patch。
    Tardis0127
        20
    Tardis0127  
       2017-12-06 16:42:06 +08:00
    Less is more. C++ 过分了
    skadi
        21
    skadi  
       2017-12-06 17:10:11 +08:00
    @geelaw c++17 全部特性,gcc7 和 clang5.0 已全部支持.
    gnaggnoyil
        22
    gnaggnoyil  
       2017-12-06 21:35:45 +08:00
    @Tardis0127 相比于 Cpp 要解决的问题而言 Cpp 已经很 less 了.
    如果能够卸掉从上古时代的 C 中来的历史包袱的话还能更短点的呢.虽然这基本不可能就是了.
    caola
        23
    caola  
       2017-12-06 23:35:53 +08:00
    centos 虽然躺枪了,也怪它默认的软件版本都相对比较低。
    个人觉得还是 debian 的好用。
    zke1e
        24
    zke1e  
       2017-12-07 10:12:23 +08:00
    还好我写 C++ 顶多就用到模版,大多数时候就当一个支持对象的 C 来写
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2742 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:11 · PVG 12:11 · LAX 20:11 · JFK 23:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.