Qt QML 简介
QML 是什么?
QML
是声明式编程语言QML
模块 类型库- 内置了
javascript
运行时环境, 提供逻辑处理: 界面逻辑,业务逻辑
Qt Quick 是什么?
Qt Quick
是类型库,提供了可视化 UI
组件,软件开发框架,用于构建用户界面
从 macOS Monterey
开始,如果应用程序被未由相同开发团队签名且未由 NSUpdateSecurityPolicy
允许的东西修改,macOS
将阻止修改并通知用户应用程序希望管理其他应用程序。点击通知会将用户发送到系统设置,他们可以在那里允许应用程序更新和修改其他应用程序。
用最简单的术语来说,一个只能应用于函数的 consteval
关键字, 保证它产生一个编译时间常数。否则会导致编译错误。
cppreference
页面对 consteval
说明符有如下描述:
consteval
指定函数是立即函数,也就是说,对该函数的每次调用都必须产生一个编译时常量
什么是立即函数?
throw
语句goto
语句或标签语句,除了 case
和 default
constexpr
上下文中使用的类型)在 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 |
ALPN
(Application-Layer Protocol Negotiation
)应用层协议协商, 当单个服务器端口号(例如端口 443
)上支持多个应用程序协议时,客户端和服务器需要协商用于每个连接的应用程序协议。希望在不增加客户端和服务器之间的网络往返次数的情况下完成此协商,因为每次往返都会降低最终用户的体验。
ALPN
作为 TSL
的扩展,客户端会将支持的应用程序协议列表作为 TLS ClientHello
消息的一部分发送给服务器,服务器选择一个协议,并将所选协议作为 TLS ServerHello
消息的一部分发送给客户端。因此,可以在 TLS
握手中完成应用协议协商,而无需添加网络往返,并且允许服务器根据需要,将不同的证书与每个应用协议相关联。