C++modules模块化编译新特性 # C++ Modules:不是“更快的头文件”,而是编译关系的重新设计 上周帮同事调一个编译耗时翻倍的项目,`clang++ -ftime-trace` 一跑,发现光是预处理就占了 68% 的时间——几十个 `.c... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 454 阅读
C++import导入模块替代include # C++20 的 `import`:不是“更好用的 `#include`”,而是换了一套思维 上周帮同事调一个编译慢得离谱的模块,光预处理就占了 42 秒。他顺手 `#include ` 和 `` 各十几次,头文件... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 911 阅读
C++export导出模块接口声明 # C++ `export` 不是“导出DLL”的开关,而是模块系统的语法钥匙 刚接触 C++20 模块(Modules)时,我翻文档看到 `export` 关键字,下意识以为它和 `.dll` 里的 `__decl... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 262 阅读
热文C++module partitions模块分区 # C++20 Module Partitions:拆分大模块时,别让编译器替你“猜”依赖 写过大型 C++ 项目的人都懂那种微妙的疲惫感:改一行 `utils.h`,整个项目重编译五分钟;想把一个千行模块拆开,又怕... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 1.97 K 阅读
热文C++反射提案与静态反射用法 # C++还没“照镜子”?聊聊静态反射提案与它真正能干的事 上周写模板元编程时,又卡在了类型名转字符串这一步——想让日志自动打出 `std::vector` 而不是硬编码 `"vector"`,结果翻遍 `˂ty... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 1.42 K 阅读
热文C++属性[[nodiscard]]忽略返回警告 # `[[nodiscard]]` 被忽略?不是编译器失灵,是你没踩对“警告触发点” 上周帮同事看一段内存池代码,他皱着眉说:“我明明加了 `[[nodiscard]]`,可调用 `allocate()` 后直接丢弃... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 2.01 K 阅读
热文C++属性[[maybe_unused]]抑制未用 # `[[maybe_unused]]`:那个被你忽略的“消音键” 写C++时,有没有过这种尴尬时刻? 函数参数明明是为未来扩展预留的,编译器却跳出来警告:“`unused parameter 'ctx'`”; 某个... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 1.51 K 阅读
热文C++属性[[deprecated]]标记废弃 # `[[deprecated]]` 不是贴纸,是写给未来自己的便条 上周帮同事看一段老代码,发现一个函数被加了 `[[deprecated]]`,但调用它的地方没任何提示,编译也安静得像什么都没发生。他挠头问我:“... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 1.79 K 阅读
C++属性[[fallthrough]]开关穿透 # `[[fallthrough]]`:C++里那个被低估的“我故意不加break”的声明 写过 switch 的人,大概都踩过这个坑:逻辑明明该在某个 case 结束,却因为少打了一个 `break`,程序一路穿透... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 352 阅读
C++属性[[likely]]与[[unlikely]] # `[[likely]]` 和 `[[unlikely]]`:C++20里那个“悄悄帮你调性能”的小开关 上周帮同事看一段实时音频处理代码,循环里有个 `if (buffer_full)` 判断,99.9% 的情况... Dark零点/ C++教程/ 2026-04-11/ 0 评论/ 480 阅读