C++常用三方库
发表于|更新于|Backend Dev
|浏览量:
C++ 常用三方库
gtest
参考资料:
glog
头文件:#include <glog/logging.h>。
日志级别
INFOWARNINGERRORFATAL
打印 FATAL 消息会在打印完成后终止程序。
CHECK 宏
glog 提供了 CHECK() 宏帮助我们检查程序的错误,当 CHECK() 的条件不满足时,它会记录 FATAL 日志并终止程序。
1 | #define CHECK_EQ(x,y) CHECK_OP(x,y,EQ,==) |
CHECK(Condition expression):判断条件表达式是否成立;CHECK_NE(a, b):判断两个值是否不相等;CHECK_EQ(a, b):判断两个值是否相等;CHECK_NOTNULL:判断是否为空指针。
注意:与
assert()不同的是,无论程序是否开启NODEBUG,CHECK()都会执行。
参考资料:
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2025-02-20
sql-learning
数据库系统概论笔记1. 关系数据库标准语言SQL1.1 数据定义SQL的数据定义语句 操作对象 操作方法 创建 删除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 CREATE TABLE DROP TABLE ALTER TABLE 视图 CRRATE VIEW DROP VIEW 索引 CREATE INDEX DROP INDEX ALTER INDEX 1.1.1 模式的定义和删除定义模式12CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;CREATE SCHEMA "S-T" AUTHORIZATION WANG; 在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。 即 1234567CREATE SCHEMA TEST AUTHORIZATION ZHANGCREATE TABLE TAB1( COL1 SMALLINT, COL2 I...
2025-02-04
C学习路线
C 学习路线 编程语言 计算机基础 数据结构和算法 计算机网络 操作系统 设计模式 项目实战 Linux 操作系统 编译/调试工具 Linux 环境编程 编程语言指针、内存管理 学习书籍:《C Primer Plus》、《C 和指针》、《C 专家编程》 计算机基础数据结构和算法、计算机网络、操作系统、设计模式 数据结构和算法刷题:LeetCode 学习书籍:《大话数据结构》(C/C++)、《算法》(Java)、《剑指 Offer》 计算机网络TCP/IP 协议 学习书籍:《TCP/IP 详解》 操作系统进程和线程(并发、锁)、内存(分布、调度) 学习书籍:《深入理解操作系统》 设计模式常用:单例、工厂、代理、策略、模板方法 学习书籍:《大话设计模式》 项目实战Linux 操作系统常用命令、shell 编程(批处理、自动化脚本) 学习书籍:《鸟哥的 Linux 私房菜》、《Linux 就该这么学》 编译/调试工具编译工具:gcc、make(makefile) 调试工具:gdb 学习资料:GNU 官方 gcc 和 gdb 文...
2025-03-02
11_mongo_db_notes
MongoDB + ImageKit 集成(后端架构笔记) 目标允许用户上传图像。将图像存储在云存储(ImageKit)中。将返回的图像 URL 保存在 MongoDB 中。返回正确的响应给客户端。 完整的系统流程客户端(颤振/邮递员)→ HTTP 请求(多部分/表单数据)→ 快速路线→ Multer 中间件(解析文件)→ ImageKit 上传服务→ 云存储→ 返回的 URL→ MongoDB(存储 URL)→ 回复已发回 1. 为什么需要 MulterExpress 默认可以解析 JSON。但是,图像上传不是 JSON。它们被发送为: 内容类型:多部分/表单数据 此格式包含原始二进制数据。仅 Express 无法从此格式提取文件。 穆特解决了这个问题。 穆尔特: 读取传入的请求流 检测文件边界 将文件数据与文本字段分开 将文件附加到 req.file 将文本字段附加到 req.body 多路复用器配置123456const multer = require("multer");const upload = multer...
2025-02-06
JavaScript高级笔记
今日内容:1. JavaScript: 1. ECMAScript: 2. BOM: 3. DOM: 1. 事件 DOM简单学习:为了满足案例要求* 功能:控制html文档的内容 * 获取页面标签(元素)对象:Element * document.getElementById("id值"):通过元素的id获取元素对象 * 操作Element对象: 1. 修改属性值: 1. 明确获取的对象是哪一个? 2. 查看API文档,找其中有哪些属性可以设置 2. 修改标签体内容: * 属性:innerHTML 1. 获取元素对象 2. 使用innerHTML属性修改标签体内容 事件简单学习* 功能: 某些组件被执行了某些操作后,触发某些代码的执行。 * 造句: xxx被xxx,我就xxx * 我方水晶被摧毁后,我就责备对友。 * 敌方水晶被摧毁后,我就夸奖自己。 * 如何绑定事件 1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码 1. 事件:onclick--- 单击事件 2. 通过j...
2025-01-16
ValidationsAndTransformations
🏗️ 后端分层架构什么是分层架构?分层架构是一种后端设计模式,其中应用程序分为不同的层,每个层都有特定的职责。 1Client → Controller → Service → Repository → Database 它确保干净的代码、关注点分离和可扩展性。 为什么使用它?它解决的问题 将业务逻辑与 HTTP 逻辑混合 控制器内的 SQL 查询 难以维护且混乱的代码 测试困难 紧耦合 好处 结构简洁 轻松测试 可扩展的设计 可维护的代码 团队友好 层解释1️⃣ 控制器层作用: 处理 HTTP 请求。 职责: 验证输入 验证/授权 致电服务 返回响应 用于: 仅请求级验证。 2️⃣ 服务层作用: 包含业务逻辑。 职责: 应用业务规则 协调存储库 数据转换 用途: 业务验证(例如,“用户已存在”)。 3️⃣ 存储库层作用: 数据库交互。 职责: 增删改查操作 与DB / ORM通信 用途: 所有数据库访问。 验证规则 类型 层 输入验证 控制器 业务验证 服务 何时使用推荐用于: API 可扩展的后端系统 生产项...
2025-03-07
16_jsonwebtoken
JWT(JSON Web 令牌)——核心概念1.智威汤逊凯亚·霍塔海?JWT ek 签名令牌 hota hai jo 服务器生成 karta hai aur 客户端 ko deta hai。 Iska 目的 hota hai 用户 ki 身份 ko 无状态 tareeke se 验证 karna。 无状态 ka matlab:服务器 ko 会话存储 karne ki zarurat nahi hoti。 Har 请求 ke sath 令牌 aata hai aur 服务器 usko 验证 karta hai。 2. JWT Ka 结构JWT 3 部分 par mushtamil hota hai: 头部(算法信息) Payload(用户数据jaise id、角色)3.签名(秘钥se签名kiya gaya部分) 签名确保karti hai ke token不可篡改nahi hua。 3. JWT 身份验证流程登录 kebaad: 用户凭据验证hote hain2.服务器JWT生成karta hai 客户端 ko token diya jata hai (cookie ya...