c++23

c++之路6 天前
java·c++·c++23
C++23概述C++23 包含以下新的语言特性:C++23 包含以下新的库特性:编写可在常量求值期间实例化的代码。C++23 引入了显式对象成员函数,现在可以通过指定成员函数的第一个参数(以 this 关键字为前缀),推导对象的类型和值类别:
君鼎10 天前
c++23
C++23 新特性全面总结核心思想:C++23 延续了 C++20 的现代化进程,被定位为"C++20 的完善版"。它没有引入全新的四大旗舰,而是围绕 C++20 生态进行深度打磨与补齐:语言层面引入了革命性的 Deducing this(显式对象参数)、if consteval、多维下标运算符等;标准库层面补齐了 std::expected、std::generator、std::print、std::flat_map、std::mdspan、大量 Ranges 视图以及 std::optional 的 Monadic 操作等长
charlie11451419110 天前
c++23
Cinux:用 C++23 从 MBR 写到 GUI 桌面的 x86_64 教学操作系统Cinux Here!github.com/Charliechen114514/Cinux。 已严肃24小时待命PR和Issue(严肃.png) PS: 是否用AI了?用了,必须承认这个!毕竟手搓的时候被SSE栈对齐要求艹了一顿两顿的吓哭了
charlie11451419115 天前
开发语言·c++·stm32·学习·c++23
嵌入式C++开发第17篇:C++23特性收尾 —— 属性、链接与零开销抽象的最终证明仓库已经开源!仍然在持续建设中,喜欢的话点个⭐!相关的链接如下:https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP 静态网页直接阅览:https://awesome-embedded-learning-studio.github.io/Tutorial_AwesomeModernCPP/
Bender_ydc2 个月前
c++23
cnetmod 基于 C++23 模块和原生协程的跨平台异步网基于 C++23 模块和原生协程的跨平台异步网络库。https://github.com/banderzhm/cnetmod
cheungxiongwei.com3 个月前
prompt·c++23
使用 C++23 实现 Prompt DSL 的 Header-Only 解析器:从语法设计到工程落地本文围绕一种用于描述 Prompt 的领域特定语言(DSL),系统性地讲解了其语法设计、历史背景、应用场景,并完整展示了如何使用 C++23 实现一个 header-only 解析器。我们从 EBNF 语法出发,逐步构建词法分析器(Lexer)、抽象语法树(AST)以及递归下降解析器(Parser),最终得到一个可直接嵌入工程、无第三方依赖、支持多行字符串与数值字段的解析方案。文章结尾给出了完整源码,适合用作 Prompt 工程化、配置语言设计以及现代 C++ 解析器实现的参考范例。
fpcc4 个月前
c++·c++23
C++23中的模块应用说明之五综合应用和重点分在前面进行了模块的尽量详细的分析和说明,对其中的的组织形式也进行了初步的分析。在生产实践中,具体的组织除了遵循技术上的组织方式外,还要针对具体的应用进行组织管理:
fpcc4 个月前
c++·c++23
C++23中的模块应用说明之三深入分析和混合编程在模块的学习中,英文文档中反复出现translation unit,它其实就是模块单元(module unit)的组成者。可以直译为“翻译单元”,也可以根据模块的特点理解为“迁移单元”。 C++中对模块的应用来说,是一个革命的性的变化。所以影响最大的有两种场景:
fpcc4 个月前
c++·c++23
C++23中的模块应用说明之二整体说明和导出控制在前面学习的基础上,再看一下基础模块的定义形式:上述的模块声明使用方法主要有四类:或这种:聚合接口的目的在于,在此模块内导入并导出的模块,既可以在本模块内使用,也可以在引入本模块的其它单元中使用。这才是re-export的精髓。
特立独行的猫a4 个月前
开发语言·c++23·expected·错误码处理
C++23 std::expected 详解:告别传统错误码和异常,构建现代健壮代码在 C++ 的世界里,错误处理一直是一个痛点。传统的做法要么是返回一个错误码(容易被忽视),要么是抛出异常(性能开销大,且难以追踪调用链)。C++23 引入的 <expected> 库,提供了一种优雅且高效的解决方案:std::expected<T, E>。
ALex_zry5 个月前
安全·c++20·c++23
C++20和C++23 在内存管理、并发控制和类型安全相关优化方式的详细技术分析现代C++标准在进程间共享信息方面引入了多项重要改进,特别是在内存管理、并发控制和类型安全方面。以下是对C++20和C++23相关优化方式的详细技术分析。
fpcc5 个月前
c++23
C++23中的模块应用说明之一基础分析在前面的c++20分析中就对模块的应用进行过分析和举例,最近的文章中通过对import的应用分析也再次引入了模块的开发。今天将对C++20后的模块开发进行一个初步的分析,从而让大家能够从概念层次上对模块有一个全面学习。 在传统的C++开发中,头文件机制虽然看上去简单,但实际上问题多多。特别是有的情况下,只是简单的把头文件的包含顺序改一下,可能编译就没有问题了。这让很多的开发者感到困惑。同时,头文件的使用也可能引起编译污染,导致很多编译单元进行重新编译,从而大降低了编译的效率。甚至为了降低这种可能,还引入了
Qt程序员5 个月前
c++·c++23
从 C++11 到 C++23:枚举的原理升级与实践枚举(enum)是C++中最基础但最被低估的类型之一。它看似简单,却蕴含着丰富的语言特性和实现细节。其演进贯穿 C++ 标准迭代:从 C 风格的无作用域枚举(C++98),到 C++11 的强类型枚举(enum class),再到 C++20 的using enum语法糖与 C++23 的反射支持,每一步都围绕 “类型安全”“性能优化”“开发效率” 三大目标。
fpcc5 个月前
c++·c++23
C++23中的自定义模块开发在前面的开发中,基本都是使用标准库中的模块直接调用。在本文中,将自己开发一个模块供程序调用,这样,就可以真正的进入了模块自行开发的实际应用场景。这和前面的动态库开发的思想有些类似,大家可以对比着来看。
Ivy_belief5 个月前
java·c++·c++11·c++23
C++新特性汇总:涵盖C++11到C++23目录一、C++11(革命性更新)二、C++14(增量改进)三、C++17(实用增强)四、C++20(重大革新)
Mr_WangAndy5 个月前
c++·c++23·c++40周年·简化隐士移动·auto新用法
C++23新特性_简化隐士移动和auto{}在 C++23 之前,编译器在 return x; 时自动执行 move(而不是 copy)是有严格条件的。如果条件不满足,必须手动调用move: 需要手动move的场景1:如果返回的类型和局部变量的类型不完全匹配。
fpcc5 个月前
c++·c++23
C++23中的import使用CMake实践在前面开发中对使用import模块开发进行了简单的入门应用说明。但在实际的开发中,可能有更多的开发者使用CMake来开发C++程序,那么如何在cmake中使用模块进行开发呢?本文将对此通过一个基础的例程来进行分析说明。 此处的环境仍然是使用上文一样的环境,Ubuntu25.10,其它均为默认环境(gcc15.2 cmake3.31.6)
oioihoii5 个月前
java·c++·c++23
C++11到C++23语法糖万字详解你是否曾面对同事的现代C++代码,看到满屏的auto、奇怪的Lambda表达式[](){}、看不懂的std::move而感到困惑?或者觉得现代C++代码看起来和“传统C++”完全不同,难以快速理解?别担心,这很可能只是因为你还不熟悉C++11以来引入的大量“语法糖”。
你的冰西瓜5 个月前
开发语言·c++·stl·c++23
C++23 新特性详解:相较于 C++20 的主要改进C++23 是 C++ 编程语言的最新标准版本(截至 2023 年),它在 C++20 的基础上引入了许多重要的新特性和改进。以下是 C++23 相较于 C++20 的主要变化:
Mr_WangAndy5 个月前
c++·c++23·c++40周年·多维下标运算符
C++23新特性_多维下标运算符在C++20之前,如果想写一个二维矩阵的元素,通常又以下两种实现方式。 方式1:函数调用风格matrix(x, y)。显示方式是 重载 operator()。缺点是,()这表示一个函数调用,而[] 才代表 访问数据,这不够直观。 方式2:链式下标风格maxtrix[x][y]. 重载 operator[] 返回一个代理对象(Proxy Object),该代理对象再重载 operator[]。这种实现方式需要维护临时对象,难以优化,容易产生性能开销。 C++23 的解决方案: 直接允许 operator[]