《C++23》——起草

C++ 参考手册 - cppreference.com

官方已经发布了C++23的修改更新意见!只不过只有草案,还没有实装进标准官方文档中。不过快了,整理好之后马上就会有了。

先看几个简单的:

#elifdef#elifndef (C++23 起) 与 #endif 指令所控制。

语法:


#if 表达式		
#ifdef 标识符		
#ifndef 标识符		
#elif 表达式		
#elifdef 标识符		(C++23 起)
#elifndef 标识符		(C++23 起)
#else		
#endif

cpp23之后 对语言上的修改就一个,宏定义预处理方法。多了#elifdef,#elifndef 这两个。用法就是上面这个样子,等价下面我们写的这样。

#if SOMEMACRO > 10
#elifdef SOMEOTHERMACRO
// 等价于#elif defined(SOMEOTHERMACRO)
#elifndef SOMEOTHERMACRO2
// 等价于to #elif !defined(SOMEOTHERMACRO2)
#endif

官网对 #elifdef与#elifndef的解释 30年的变革多了两个宏定义处理,很棒!还有一#warning 诊断消息 意思就是只是警告,不停止继续编译(就不拿出来解释了)。

//#if和指令测试指定的条件(见下文),如果计算结果为 true,则编译受控代码块。在这种情况下,后续的、#elifdef、#elifndef(自 C++23 起)和指令将被忽略。
//否则,如果指定的条件计算结果为 false,则跳过受控代码块,并处理后续的 、
//#elifdef #elifndef(自 C++23 起)或指令(如果有)。如果后续指令为 ,则无条件编译由该指令控制的代码块。否则,、
//#elifdef 或 #elifndef(自 C++23 起)指令就像指令一样:检查条件,根据结果编译或跳过受控代码块,在后一种情况下处理后续、
//#elifdef #elifndef(自 C++23 起)和指令。条件预处理块由指令终止。

值得的注意的是,每版语言的修改的更多的是适用于标准库,平常的使用中几乎不太可能会用到。具体的实装,还要等上一两年左右后,所以的系统适配更新后,才可以。毕竟,就如今现在国内的情况,大部分人还停留C++11。因为c++11中的新特性已经足够了,很多也用不到。最新的pc端也才实装到c++17,所以这是一篇看似很遥远的文章。不过,标准会的人却已经开始筹备2026年cpp计划的中的修改意见了。不管那么多了。如今的Cpp已经成为最冷门的语言了,谁还学的动呢。下一个。

新增标准库

23之后又新增了这么多的标准库。每个都有自己独特的功能。简单说下我看到<print>,时隔多年,c++自己的<print>要来了。今年标准会破天荒的优化了输入输出流,说是节约了2倍的内存空间,提升了7%的效率。对字符进行了各种性能上的优化。

头文件更改

值得注意的是23以后的输入输出流头文件,可能会变成如下这样子:

import std;
int main()
{
    std::println("Hello World!");
}

这算是对python语言的一种学习,使头文件变的足够简介。以后可能会越来越短,不过那得到26年以后的事情了。23以后也引入了新的编码方式,编程思想可能会和以前大大不同。

浮点型<stdfloat>

浮点型在23中进行了重新优化,增大的扩容性。64,128位,不管是以后的机器学习还是什么方面的考虑,进行了进一步的扩容,增大。

栈追踪 诊断库basic_stacktrace

 用于一个对堆栈进行追踪的调试库。

内存管理上

多了下面四个指针,以及一些内存效率上的优化。

 内存分配器 

新增了如下的这个两个分配器

垃圾回收机制删除

这里值得注意的点 c++11中的垃圾回收机制,在cpp23中被删除了。这个不提,可能也会有多少人知道。 但, 还是很需要注意到。

 容器库 

大致就是我们上面看到的那一个 <mdspan>,说实话<span>(cpp20库),都没曾用过,就别提这个了。

大致上有简单的一些就这些,其余的不再往下看了,等以后更新了,在继续完成下去。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yewencc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值