c++23

oioihoii4 天前
c++23
C++23 新预处理器指令详解:#elifdef、#elifndef 和 #warning在传统的 C++ 预处理指令中,#ifdef 和 #ifndef 用于检查宏是否定义,而 #elif 用于检查条件表达式。然而,#elif 无法直接检查宏是否定义,这在某些情况下会带来不便。C++23 引入的 #elifdef 和 #elifndef 指令填补了这一空白,使条件编译更加灵活。
oioihoii5 天前
c++23
C++23 Lambda 表达式上的属性:P2173R1 深度解析Lambda 表达式最早在 C++11 中引入,它允许开发者以一种简洁的方式定义匿名函数对象。这种特性极大地简化了代码,尤其是在需要传递简单函数逻辑时。例如,在标准库的算法中,Lambda 表达式可以作为回调函数,用于自定义排序、过滤等操作。
oioihoii7 天前
运维·服务器·c++23
C++23 新特性:[[assume(expression)]] 属性[[assume(expression)]] 的语法非常简单,它只能应用于空语句。例如:这行代码告诉编译器在该点处假设 x > 0 为真。需要注意的是,expression 会被上下文转换为布尔类型,但它并不会在运行时被实际求值。
oioihoii11 天前
开发语言·c++·c++23
C++23新特性详解:迈向更现代化的C++C++23引入了明确的对象参数,允许在非静态成员函数中明确指定对象参数。这一特性简化了某些复杂的C++编程模式,如Curiously Recurring Template Pattern (CRTP)。示例如下:
oioihoii11 天前
开发语言·c++·c++23
C++23新特性:显式对象形参与显式对象成员函数在C++23之前,成员函数的this指针类型是隐式的,这在某些情况下会带来不便。例如,当需要为一个类提供多个重载的成员函数以应对不同类型的对象(如const和非const对象、左值和右值对象)时,代码会变得冗余。而显式对象形参允许我们明确指定this的类型,让编译器能够根据对象的实际类型和值类别来推导出this的类型。
arong_xu4 个月前
开发语言·c++·c++23
C++23 格式化输出新特性详解: std::print 和 std::printlnC++23 带来了两个令人兴奋的新输出功能——std::print 和 std::println, 它们极大地简化了格式化输出操作, 同时保持了 C++ 一贯的高性能和灵活性. 本文将详细介绍这些新特性, 探讨其实际用法, 并通过代码示例展示如何在实际项目中使用它们.
lxyzcm4 个月前
开发语言·c++·spring boot·设计模式·c++23
深入理解C++23的Deducing this特性(上):基础概念与语法详解C++23标准中引入的"Deducing this"特性是一项重大革新,它不仅改变了我们编写成员函数的方式,还为模板元编程和设计模式实现带来了新的可能。本文将分为上下两部分,深入剖析这个特性的方方面面。在上篇中,我们将重点关注基础概念和语法细节。
lxyzcm4 个月前
java·c++·spring boot·c++23
C++23新特性解析:[[assume]]属性在C++的发展历程中,性能优化一直是一个核心主题。C++23引入的[[assume]]属性为开发者提供了一个强大的工具,允许我们直接向编译器传达程序的不变量(invariant),从而实现更好的代码优化。
XXXJessie7 个月前
c++23
c++234继承调用原则:
ztenv10 个月前
linux·c++·c++23
C++23特性一览C++23, the latest iteration of the C++ programming language standard, follows its predecessor C++20 with several enhancements aimed at improving usability, performance, and code clarity. As a refinement of the language, C++23 doesn’t introduce as many lar
ztenv10 个月前
c++·c++23
编译器对C++23的支持程度详见这里
光芒Shine1 年前
设计模式·c++23
【C++ 23种设计模式】示例一:
丁劲犇1 年前
协程·排列组合·c++23·coroutine·co_yield
使用 C++23 协程实现第一个 co_yield 同步风格调用接口--Qt计算排列组合上一篇介绍了 co_await 的例子。与 co_await 类似,在C++23的协程特性里, co_yield 用于从协程执行过程中暂停,并返回值。这个功能乍一听起来很奇怪,网上的例子大多是用一个计数器来演示多次中断协程函数,返回顺序的计数值。这看起来毫无意义。
丁劲犇1 年前
qt·协程·c++23·coroutine·co_await
使用 C++23 协程实现第一个 co_await 同步风格调用接口--Qt计算文件哈希值C++加入了协程 coroutine的特性,一直没有动手实现过。看了网上很多文章,已经了解了协程作为“可被中断和恢复的函数”的一系列特点。在学习过程中,我发现大多数网上的例子,要不就是在main()函数的控制台程序里演示yeild,await, resume的特性,要不就是讲述很多概念,很少有演示协程究竟如何把异步变成同步调用的。本次,我们就通过一个简单的计算文件哈希值的例子,来演示如何进行co_await协程操作。co_yeild放到下一篇。
everystep_1 年前
risc-v·c++23
使用 C++23 从零实现 RISC-V 模拟器使用 C++23 从零实现的 RISC-V 模拟器,最终的模拟器可以运行 xv6 操作系统。本教程参考了 Asami 所写的 Rust 版本的模拟器教程 ,但是原版只写了前三章。此外也参考了 Rare 对 rvemu 的改进 Rare 这也是一个 Rust 版本的并且已经完结了,对 rust 版本感兴趣的可以参考上面所给出对应的链接。
fpcc1 年前
c++·c++23
c++23中的新功能之十九继承的CTAD在c++编程中,一定是脱离不开继承的。而继承中有很多小的细节需要关注,比如如何显示的使用父类的构造函数?如何通过构造函数来推导模板参数等等。这些小的细节,其实都是在实际应用中对一些相关技术的不断完善。
fpcc2 年前
c++·c++23
c++23中的新功能之十四输入输出指针在c++的发展过程中,无论如何发展,c++都尽量保持着与C语言的兼容,当然这也是它的一个特点。在实际的应用中,开发者经常遇到的一个问题是,如何把一个指针的值给传出来?有人会说,简单啊,直接返回不就行了。当然,这样是可以的,但是如果不想通过返回值返回呢(返回值另有它用)? 在普通的变量中,可以通过引用“&”来实现,类似下面的代码: