技术栈
c++23
Mr_WangAndy
2 天前
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[]
Mr_WangAndy
2 天前
c++
·
c++23
·
c++40周年
·
c++23新特性
·
warning预处理命令
C++23新特性_#warning 预处理指令
本文介绍C++23新特性之#warning 预处理指令。在C++23之前,几乎所有的主流编译器(GCC, Clang, MSVC)都支持#warning指令,用来在编译期间发出自定义警告。 C++ 23 将这一广泛存在的扩展纳入标准,无论使用什么编译器, 都可以使用#warning。
Mr_WangAndy
2 天前
c++23
·
c++40周年
·
deducingthis
C++23新特性_Deducing this
在C++20之前,一个类的this指针隐士藏在这个类的成员函数的第一个参数中。在类中提供一个获取属性的方法get(),为了支持左值,const左值,右值等不同场景,实现如下:
Mr_WangAndy
2 天前
c++
·
c++23
·
c++40周年
·
if consteval
C++23新特性_if consteval
在 C++20 中,我们使用 std::is_constant_evaluated() 来判断当前是否在编译期执行。虽然它能工作,但存在两个显著的陷阱: 缺陷:与if constexpr混用
cooldream2009
6 天前
c++
·
c++20
·
c++23
C++20 与 C++23 新特性深度解析:迈向现代 C++ 的核心进化
自 C++11 开启现代化转型以来,C++ 语言正在加速摆脱过去“复杂、难用、编译慢”的刻板印象,并逐步构建一个更安全、更高效、更具表达力的语言体系。尤其是近年的 C++20 与 C++23,它们不仅带来大量革命性的新特性,还在泛型编程、模块化构建、编译期计算、异步协程等领域重塑了开发者的编程习惯。
fpcc
6 天前
c++23
C++23中的import开发实践
在c++20中就引入import这个模块应用机制了。但限于编译器和环境的滞后性,短时间内不大可能广泛的应用起来。但这不代表着开发者可以忽视它,一个新技术的出现,不管最终的结果如何。都需要在实践中进行应用并反馈结果。那么在实际编程中如何使用这种机制呢,下面就以一个最简单的程序来给大家演示一下,让大家有一个逐步接受的过程。 开发的环境使用了ubuntu25.10,程序中默认的gcc的版本是gcc15.2,编译默认的C++标准为c++20。如果缺少相关的库或者编译环境限制,请根据提示自行安装即可,此处不再赘述。
Bender_ydc
21 天前
算法
·
c++23
一个基于现代 C++23 Modules 的传统文化算法库,使用纯模块化设计实现(包含大六壬、六爻、紫薇斗数、八字、奇门遁甲)
一个基于现代 C++23 Modules 的传统文化算法库,使用纯模块化设计实现https://github.com/banderzhm/ZhouYiLab
fpcc
1 个月前
c++
·
c++23
c++23中的print和println
人类和计算机交互过程中,一定会有一种数据格式化的过程。这个很好理解,两种不同的语言交互还需要一个翻译呢,对吧?从开始学习编程的std::cout系列和C语言中的printf函数,以及后面各种更高级的格式化函数sprintf,fprintf等,都说明这个需求是一个强需求。 C++从C++20中的formatting开始,就进行了一些更高级一些应用场景的支持,而在C++23中则提供了更容易为广大开发者接受的std::print和std::println。
charlie114514191
2 个月前
开发语言
·
c++
·
学习
·
设计模式
·
桥接模式
·
c++23
·
概论
精读C++设计模式20 —— 结构型设计模式:桥接模式
这是我们的第二个设计模式——桥接模式!桥接模式更加直白了,我们之前的适配器更倾向于对接口本身的桥接,这里说的是系统协作的桥接。笔者认为他跟适配器区别谈不上很大。但是还是要仔细说一说这个桥接模式,以及我们下面要引出的,笔者最最常用的pImpl法,他就属于桥接模式的一个响当当的代表
疯狂的Alex
2 个月前
人工智能
·
c++23
半精度浮点在AI推理中的应用:C++23新类型与性能测试
在AI推理场景中,“精度”与“性能”的平衡始终是核心矛盾——单精度浮点(FP32)虽精度足够,但16字节的矩阵乘法会占用大量显存带宽,导致推理速度受限;而整数量化(如INT8)虽性能优异,却会引入明显精度损失,难以满足图像分类、自然语言处理等高精度需求。半精度浮点(FP16/BF16)的出现恰好填补了这一空白,其2字节的存储体量能将显存占用减少50%,同时精度损失可控。
疯狂的Alex
2 个月前
rpc
·
矩阵
·
c++23
C++23特性全解析:从编译器支持矩阵到多维数组性能优化实战
C++23标准作为C++20后的首个重大更新,带来了31项正式特性和17项技术规范扩展,在语言表达能力、标准库实用性和性能优化方面实现了显著突破。其中,多维数组视图(mdspan)、范围适配器管道、临时值生命周期延长等特性,直接解决了工业界长期面临的性能瓶颈和代码冗余问题。
雪域迷影
4 个月前
开发语言
·
c++
·
c++23
C++23中的std::expected:异常处理
众所周知,C++23以前的异常处理是比较麻烦的,尤其是自己要在可能抛出异常的地方,需要自己去捕获它,比如除数为0的异常、使用std::stoi函数将字符串转换成int整型数据、处理文件读写的异常等等,不然很容易造成程序终止。 关于C++23中引入的std::expected,这一全新的词汇表类型,它为函数返回结果的处理提供了一种更加优雅、类型安全的解决方案。
十年编程老舅
5 个月前
c++
·
c++11
·
c++20
·
c++14
·
c++23
·
c++17
·
c++新特性
跨越十年的C++演进:C++20新特性全解析
跨越十年的C++演进系列,分为5篇,本文为第四篇,后续会持续更新C++23~前3篇如下:跨越十年的C++演进:C++11新特性全解析
oioihoii
6 个月前
java
·
jvm
·
c++23
C++23 已移除特性解析
C++ 作为一门历史悠久且广泛应用的编程语言,始终在不断发展和演进。每一个新版本的发布,都会带来一系列新的特性和改进,同时也会移除一些不再适用或存在问题的特性。C++23 作为 C++ 标准的一个重要版本,也不例外。移除某些特性是为了简化语言,提高代码的安全性和可维护性,避免潜在的错误和混淆。本文将详细介绍 C++23 中已移除的几个重要特性。
oioihoii
6 个月前
c++23
C++23 已弃用特性
在C++的发展历程中,标准库不断演进,一些特性会随着时间推移而被弃用。C++23 中,std::aligned_storage 与 std::aligned_union(提案 P1413R3)以及 std::numeric_limits::has_denorm(提案 P2614R2)就被列入了弃用名单。下面我们来详细了解这些特性以及它们被弃用的原因。
oioihoii
6 个月前
c++23
C++23 std::fstreams基础回顾
在C++编程的领域中,文件操作是一项基础且重要的功能。std::fstream作为C++标准库中用于处理文件输入输出的核心类,为开发者提供了便捷的文件读写操作方式。随着C++标准的不断演进,C++23为std::fstream带来了一项备受期待的新特性——支持独占模式(P2467R1)。这一特性的引入,不仅填补了C++在文件操作方面与其他标准(如ISO C和POSIX)的差距,还为开发者在处理文件时提供了更强大的控制能力和更高的安全性。本文将深入探讨C++23中std::fstreams支持的独占模式(P
oioihoii
6 个月前
c++
·
算法
·
c++23
C++23 <spanstream>:基于 std::span 的高效字符串流处理
在 C++23 标准中,新增了一个名为 <spanstream> 的标头,提供了一种基于 std::span 的字符串流处理方式(提案 P0448R4)。相比于传统的 <sstream>(如 std::stringstream),<spanstream> 提供了更高效、更可控的字符序列处理方式,尤其适用于需要零动态内存分配或固定缓冲区的场景。
oioihoii
6 个月前
java
·
开发语言
·
c++23
C++23:std::print和std::println格式化输出新体验
C++作为一门强大且广泛应用的编程语言,在不断地发展和演进。每一个新的标准版本都会为开发者带来一些令人期待的新特性,以提升开发效率和代码的可读性。C++23也不例外,它引入了许多新的特性和改进,其中 头文件中提供的 std::print 和 std::println 函数就是两个非常实用的格式化输出工具。本文将详细介绍这两个函数的定义、功能和使用示例,帮助大家更好地理解和使用它们。
oioihoii
6 个月前
java
·
开发语言
·
c++23
C++23中std::span和std::basic_string_view可平凡复制提案解析
在C++的发展历程中,每一个新版本都带来了一系列令人期待的新特性,这些特性不仅提升了语言的性能和表达能力,还为开发者提供了更加便捷和高效的编程方式。C++23作为C++标准的一个重要版本,在很多方面进行了完善和优化。其中,P2251R1提案要求std::span和std::basic_string_view可平凡复制,这一改变对C++编程产生了重要影响。
oioihoii
6 个月前
算法
·
c++23
C++23 新成员函数与字符串类型的改动
C++ 作为一门广泛应用的编程语言,一直在不断发展和演进。C++23 作为其发展历程中的一个重要版本,引入了许多新的特性和改进,其中在字符串处理方面有一些显著的改动。这些改动不仅提升了代码的性能和效率,还增强了代码的安全性和可读性。本文将详细介绍 C++23 中几个重要的字符串相关的新特性,包括 std::basic_string::contains 与 std::basic_string_view::contains、禁止从 nullptr 构造 std::basic_string 和 std::bas