摘要: 普通构造函数VS初始化列表构造函数 初始化列表构造函数最优先匹配问题 对于一个类而言,只要其中包含有初始化列表的构造函数,编译器在编译使用{}语法的构造时会最倾向于调用初始化列表构造函数,哪怕做类型转换也在所不惜,哪怕有类型最佳匹配的普通构造函数或移动构造函数也会被劫持 class Widget { 阅读全文
posted @ 2023-05-16 01:53 缙云烧饼 阅读(275) 评论(0) 推荐(2) 编辑
摘要: PImpl:Pointer to implementation,常用于隐藏实现细节,构造拥有稳定 ABI 的 C++ 库接口,及减少编译时依赖。 在使用pimpl技术时,pimpl是类静态变量,对其在源文件中的实现需要使用typename关键字 对于模板类的静态成员变量的定义,你需要使用完整的模板类 阅读全文
posted @ 2023-05-15 01:09 缙云烧饼 阅读(133) 评论(0) 推荐(0) 编辑
摘要: requires 是 C++20 中引入的一个新关键字,用于在函数模板或类模板中声明所需的一组语义要求,它可以用来限制模板参数,类似于 typename 和 class 关键字。 requires关键字常与type_traits头文件下类型检查函数匹配使用,当requires后的表达式值为true时 阅读全文
posted @ 2023-05-15 01:02 缙云烧饼 阅读(853) 评论(0) 推荐(0) 编辑
摘要: gMock是什么 当我们去写测试时,有些测试对象很单纯简单,例如一个函数完全不依赖于其他的对象,那么就只需要验证其输入输出是否符合预期即可。 但是如果测试对象很复杂或者依赖于其他的对象呢?例如一个函数中需要访问数据库或者消息队列,那么要想按照之前的思路去测试就必须创建好数据库和消息队列的客户端实例, 阅读全文
posted @ 2022-10-18 21:39 缙云烧饼 阅读(2306) 评论(2) 推荐(5) 编辑
摘要: 参考文档:https://spdlog.docsforge.com/master/ spdlog简介 Very fast, header only, C++ logging library. 一个header-only的C++日志库,十分高效且易用。 获取安装方式 https://github.co 阅读全文
posted @ 2022-10-16 21:47 缙云烧饼 阅读(4622) 评论(0) 推荐(5) 编辑
摘要: 参考: GoogleTest官网 基本概念 要使用GoogleTest,需要包含header gtest/gtest.h 断言Assertions 断言是检查条件是否为真的语句,其结果可能是成功或失败,失败分为非致命失败和致命失败两种,后者会终止当前运行,前者则会继续运行。 GoogleTest中, 阅读全文
posted @ 2022-09-21 20:52 缙云烧饼 阅读(980) 评论(0) 推荐(1) 编辑
摘要: 官方的C++异步服务端API样例可读性并不好,理解起来非常的费劲,各种状态机也并不明了,整个运行过程也容易读不懂,因此此处参考网上的博客进行了重写,以求顺利读懂。 C++异步服务端实例,详细注释版 gRPC使用C++实现异步服务端的基本逻辑: 构建数据结构来存储需要处理的请求及其上下文信息,此处使用 阅读全文
posted @ 2022-09-15 16:33 缙云烧饼 阅读(954) 评论(0) 推荐(0) 编辑
摘要: 在gRPC中,编写.proto文件(protocol buffer文件)来定义RPC服务的接口是第一步 先通过proto的代码生成器编译生成pb.h、pb.cc、grpc.pb.h、grpc.pb.cc。然后在编写client和server时引入头文件进行使用。以下的代码能帮助我们快速的生成以上的四 阅读全文
posted @ 2022-09-15 11:09 缙云烧饼 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 基于gRPC官方C++异步服务端与客户端示例代码的解读,附带详细的代码注释 阅读全文
posted @ 2022-09-06 23:43 缙云烧饼 阅读(1584) 评论(0) 推荐(0) 编辑
摘要: 记录自己成长的起点 阅读全文
posted @ 2022-09-06 00:33 缙云烧饼 阅读(30) 评论(0) 推荐(0) 编辑