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

C++支持 import 了

  •  
  •   nkchn · 2023-05-21 21:59:22 +08:00 · 2406 次点击
    这是一个创建于 550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    import std 哈哈哈

    第 1 条附言  ·  2023-05-22 13:36:36 +08:00
    不过编译一个 hello world 好大啊,一百多 k,仅次于 rust
    用之前的语法是 12k
    14 条回复    2024-06-05 14:54:57 +08:00
    nkidgm
        1
    nkidgm  
       2023-05-21 22:42:28 +08:00
    村网通?
    inhzus
        2
    inhzus  
       2023-05-21 23:10:12 +08:00
    距离 P1103R3 这个提案都已经过去四年了...
    agagega
        3
    agagega  
       2023-05-21 23:42:31 +08:00
    联想到了上次 Rust 帖子里那位觉得用 C++写项目很老土的 V 友,就是不知道认为 C++老土的,和反感 C++加新东西的,是不是同一批人……
    C47CH
        4
    C47CH  
       2023-05-22 01:45:54 +08:00
    C++正在向现代化编程语言迈进!
    whi147
        5
    whi147  
       2023-05-22 10:36:41 +08:00 via iPhone
    早就有了
    Masoud2023
        6
    Masoud2023  
       2023-05-22 11:37:26 +08:00
    这个 feature production ready 吗?

    有配套的比如包管理之类的支持吗?

    愿闻其详
    yy77
        7
    yy77  
       2023-05-22 11:42:09 +08:00
    include 不要了?
    反正 c++这些新 feature 需要掌握的人也会越来越少吧。
    lxdlam
        8
    lxdlam  
       2023-05-22 13:47:17 +08:00   ❤️ 2
    从 P1103R3 之后,Module 在标准化上就通过了一个比较重要的提案 P2465R3 (将标准库 module 化),而之前听过一个大佬的分享,实际上从有到能用到堪用再到好用,还有很长的路径要走。

    比如,随便可以举出来好几个问题:
    1. 最基本的,编译时间、增量编译和宏的兼容方案?
    2. Module 的 cache 产物统一:目前 gcc (gcm) 跟 clang (pcm) 跟 MSVC 是完全三套,先不提如何兼容,这离 Module 想达到的目标还很远;
    3. 如何分发产物?如果分发 .so ,跟现在的情况有什么改变?如果分发编译 cache ,怎么在经典的 ABI 、Linking 等等问题下保持可用?如果需要用户单独编译,那为什么不直接分发源码?
    5. 现有的工具链如何兼容适配?编译优化( ccache 等),包管理( conan 等)以及相关的 module 生态等,目前都没有一个明确说法。

    至少在我看来+乐观估计,得等 5~10 年,等到这些问题有一个解决方案,才能达到堪用水平,我们才能说“C++ 有了 Module”。
    alexsunxl
        9
    alexsunxl  
       2023-05-22 14:13:29 +08:00
    好像核心区别是 一个基于文本,一个基于二进制的?
    codehz
        10
    codehz  
       2023-05-22 19:10:50 +08:00
    @lxdlam module 估计永远不能非源码分发,其他语言的“模块”/“第三方包”,具有高级特性的(也就是不能被 c abi 描述的,更别说脚本语言了)也基本走源码分发,少数如 c# java 才有字节码分发
    从这个角度说,其实能用源码分发就够用了,给源码和开源是两回事)
    看作 pch 的自然演化就好了(
    qrobot
        11
    qrobot  
       2023-05-23 10:59:59 +08:00
    @lxdlam 我写了 C++/C 一段时间, cmake qmake msvc, 这些东西我感觉都没有很好的三方依赖管理库, 例如 vcpkg 或者 msys2 等等. 我感觉 C++ 分裂很大, 有时候为了加一个依赖库, 我甚至要编译对应的三方项目, 但是三方项目有依赖其他的, 这样编译起来非常麻烦. msys2 很棒, 但是有时候还是找不到对应的包, 例如 在 window 上, vcpkg 很不错, 但是包不怎么全. 感觉 C++ 中 各种编译平台百花齐放.


    可能我是一个新手吧. 反正我感觉搞 C++ 大部分时间在环境搭建上, 少部分时间在代码编写上
    qrobot
        12
    qrobot  
       2023-05-23 11:00:41 +08:00
    @qrobot 但是这些在 Linux 上编写就很舒服, 基本上 apt 就可以搞定大部分的依赖
    des
        13
    des  
       2023-05-23 12:33:15 +08:00 via iPhone
    @qrobot 然后换个系统就寄了😅
    x93008x
        14
    x93008x  
       169 天前
    @qrobot 不得不推一下 conan 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2895 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.