Package Type
- Long Header Packets
- Version Negotiation Packet
- Initial Packet
- 0-RTT Packet
- Handshake Packet
- Retry Packet
- Short Header Packets
- 1-RTT Packet
1 | +=====================+=================+==================+ |
Package Type
1 | +=====================+=================+==================+ |
最近接触到 SUSE Linux 操作系统,一些命令不一样,这里记录下:
zypper1 | sudo zypper install 包名 |
1 | sudo zypper search 包名 |
我用的系统是 SUSE 12 SP5 基本没有可用的在线 Repositories, 一些包很难找到了,可以通过SUSE Linux Enterprise Software Development Kit 下载对应的 SDK ISO 安装里面的 rpm。
从 macOS Monterey 开始,如果应用程序被未由相同开发团队签名且未由 NSUpdateSecurityPolicy 允许的东西修改,macOS 将阻止修改并通知用户应用程序希望管理其他应用程序。点击通知会将用户发送到系统设置,他们可以在那里允许应用程序更新和修改其他应用程序。

用最简单的术语来说,一个只能应用于函数的 consteval 关键字, 保证它产生一个编译时间常数。否则会导致编译错误。
cppreference 页面对 consteval 说明符有如下描述:
consteval指定函数是立即函数,也就是说,对该函数的每次调用都必须产生一个编译时常量
什么是立即函数?
throw 语句goto 语句或标签语句,除了 case 和 defaultconstexpr 上下文中使用的类型)在 C++ 中,存储变量的方式有几种:
存储期(Storage Duration):
存储期是指变量在程序中存在的时间段。在 C++ 中,有三种主要的存储期:
Automatic Storage Duration):变量在函数或代码块执行时创建,函数执行结束时销毁。Dynamic Storage Duration): 使用 new 或 malloc 分配的内存,直到使用 delete 或 free 手动释放为止。Static Storage Duration): 变量在程序启动时创建,在整个程序运行期间都存在,直到程序结束才销毁。静态存储变量:
静态存储变量是在程序启动时创建,一直存在于整个程序运行期间的变量。这类变量有两种主要形式:
Global Variables): 在函数外部声明的变量,可以被程序中的所有函数访问。Static Local Variables): 在函数内部使用 static 关键字声明的变量,与自动存储期变量不同,它在函数调用之间保持其值。在 C++ 中,我们经常使用静态存储期变量,包括全局变量和使用 static 关键字声明的局部变量。然而,这些变量并不保证在程序执行前被初始化,除非它们被声明为 const 常量。为了解决这一问题,C++20 引入了 constinit 关键字,它为我们提供了一种保证变量在程序启动时被初始化的方式,从而增强了可预测性和可靠性。
尽管 constinit 确保变量在程序启动时被初始化,但这并不意味着这些变量是不可修改的常量。相反,这个关键字允许变量在初始化后在运行时或编译时上下文中被修改。
因此,constinit 关键字为我们提供了一种在使用静态存储期变量时获得初始化保证的方法,同时允许在初始化后对其进行适当的修改。
1 | Main x-apple.systempreferences:com.apple.preference.universalaccess |