
C++17_第三篇
结构化绑定 结构化绑定允许我们解构和绑定返回的元组、数组或结构体中的值,使得代码更加简洁和可读 嵌套命名空间 C++17 允许使用嵌套命名空间声明的简写方式,减少冗长的代码 std::filesystem 跨平台文件系统操作 std::variant std::variant 是...
结构化绑定 结构化绑定允许我们解构和绑定返回的元组、数组或结构体中的值,使得代码更加简洁和可读 嵌套命名空间 C++17 允许使用嵌套命名空间声明的简写方式,减少冗长的代码 std::filesystem 跨平台文件系统操作 std::variant std::variant 是...
一次性事件 C++标准库模型将这种一次性事件称为期望future 当一个线程需要等待一个特定的一次性事件时,在某种程度上来说它需要知道这个事件在未来的表现形式。之后,这个线程会周期性的等待或检查,事件是否出发 在检查期间也会执行其他任务,直到对应的任务触发,而后等待期望的状态会变...
定义 使用 引入gflags文件夹 定义下面的宏 使用
使用介绍 默认的 创建一个多线程日志记录器 创建的日志记录器是多线程的,这意味着它可以被多个线程同时使用,而不会发生竞争条件或数据损坏 用于创建多线程的循环日志记录器 循环日志记录器是指在达到指定大小后,会自动循环覆盖旧的日志文件并创建新的日志文件来存储日志消息 循环日志记录器还...
指针 概述 通常所说的“指针”就是指 指针类型的变量,它保存了 内存中另一个变量的地址 通过这个指针保存的地址,我们可以 间接访问 指针指向的内存位置的数据 这个过程称为 解引用(dereferencing) 示例 *ptr 表示 通过指针 ptr 访问其保存的地址所指向的数据 ...
关于 #include <string> //C++ #include <string.h> //C using namespaces std; 声明 string str; 调用string的默认构造函数,str被初始化为空串 构造 string s(s...
导出SOUI对象到Lua 为了在SOUI中使用lua,需要使用lua内核实现一个SOUI::IScriptModuler接口。 导出SOUI对象通常应该在IScriptModule的实现类的构造中执行 在lua中使用 事件分发处理 在MFC中,一个类要处理消息,这个类通常派生自C...
线程池 创建线程池方法一 调用async_factory_impl::create创建线程池 但是这个函数实际作用是用于创建一个记录器 由于需要一个线程池对象参数,所以在创建记录器之前做了个检查,如果还不存在线程池,就先创建线程池,再构造记录器 这里使用递归锁的原因可能是为了使代...
语言特性 指定初始化 按名称初始化结构体成员,提高可读性 [[likely]]和[[unlikely]] 提示编译器分支预测优化 标准库新增组件 std::atomic_ref(原子引用) 概述 C++20 引入的模板类,允许对 非原子类型 的对象进行原子操作 它的核心作用是为现...
空类大小 空类对象在内存中是有起始地址的,也就是说最少能存一个字节。所以一个空类的大小是1。 this指针调整 如果派生类继承自多个基类,那么派生类对象的开始地址和第一个基类子对象的开始地址是相同的。 调用派生类的成员函数的时候,会根据这个函数属于哪个基类,对this指针进行调整...
搜索当前标签