随笔分类 -  C/C++

1 2 3 4 5 ··· 9 下一页
摘要:目录区分不同系统区分不同编译器及其版本区分不同语言及其版本参考 区分不同系统 1)_WIN32,Windows系统 _WIN64:32bit and 64bit系统 M_WIN64:仅64bit Windows系统 M_WIN32:仅32bit Windows系统 _WINDOWS:GUI Appl 阅读全文
posted @ 2024-02-19 16:30 明明1109 阅读(753) 评论(0) 推荐(0) 编辑
摘要:目录spdlog项目构成CMake构建根目录CMakeLists.txtcmake版本要求include专用cmake文件设置默认build类型编译器配置判断当前项目是否为spdlog选项开关 spdlog项目构成 Github源码:https://github.com/gabime/spdlog 阅读全文
posted @ 2023-07-17 09:44 明明1109 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:目录简介源码解析基础类日志库网络库 简介 muduo库是陈硕开发的Linux多线程事件库,适用于Linux服务器编程。 Github地址:https://github.com/chenshuo/muduo 文档介绍:https://book.douban.com/subject/20471211/ 阅读全文
posted @ 2023-05-18 20:54 明明1109 阅读(1256) 评论(0) 推荐(0) 编辑
摘要:目录意义问题用命令模式解决电机控制与输入信号耦合问题与标准命令模式的区别异同 意义 先说结论:命令模式能有效对代码模块进行解耦,增强模块的扩展性以及可移植性。 问题 为了方便说明问题,假设现在有一个电机Motor,在识别到外界信号后,通过软件控制其旋转。需要支持的旋转方式为3种:正转、反转、振动。 阅读全文
posted @ 2023-05-12 18:02 明明1109 阅读(127) 评论(0) 推荐(0) 编辑
摘要:目录库介绍项目构建源码解析 库介绍 spdlog库笔记 (一):简介 spdlog库笔记 (二):编译、安装 项目构建 spdlog日志库源码:CMake构建项目 源码解析 spdlog日志库源码:线程池thread_pool spdlog日志库源码:异常类spdlog_ex spdlog日志库源码 阅读全文
posted @ 2023-05-10 19:19 明明1109 阅读(3636) 评论(2) 推荐(2) 编辑
摘要:引出问题 在基于消息包的通信协议中,通常会通过一个id或命令名来标识该消息包,程序需要根据不同的标识进行不同的解析策略,提取出想要的内容。例如,一个典型的FTP请求命令是这样的: USER anonymous\r\n 其中,"USER"是请求命令名,"anonymous"是该命令跟着的参数,"\r\ 阅读全文
posted @ 2023-03-29 21:11 明明1109 阅读(228) 评论(0) 推荐(0) 编辑
摘要:字面量 字面量是指源码中,固定的常量。比如, const char* p = "abcd"; const std::string s = "efg"; const int v = 10; const double d = 20.1; const unsigned long l = 123465789 阅读全文
posted @ 2023-03-25 17:25 明明1109 阅读(482) 评论(0) 推荐(0) 编辑
摘要:内存池意义 内存的分配与释放会向系统进行申请,陷入内核,而频繁的内存分配、释放会降低应用程序性能。应用程序通常以特定方式使用内存,因此,能通过开发专门的内存管理器来解决这种情况。内存管理器,通常也称为内存池。 内存管理器需要考虑两方面:大小、并发。 大小 1)固定大小:分配单一固定大小内存块对内存管 阅读全文
posted @ 2023-03-23 19:51 明明1109 阅读(514) 评论(0) 推荐(1) 编辑
摘要:临时对象对开发人员来说,可能是个意外情况,因为是编译器偷偷产生的,并不在源码中出现。由于临时对象可能影响程序性能,本文主要探讨这种额外产生的临时对象。 产生临时对象 假设有理数类Rational: // 有理数 class Rational { friend Rational operator+(c 阅读全文
posted @ 2023-02-25 16:25 明明1109 阅读(133) 评论(0) 推荐(0) 编辑
摘要:返回值优化(Return Value Optimization, 简称RVO)是通过对源代码进行转换、消除对象的创建来实现加速程序,提升程序性能的优化措施,通常是由编译器实现的优化。 按值返回 假设我们打算实现Complex类,用于实现复数。可以这样设计Complex类: class Complex 阅读全文
posted @ 2023-01-08 23:39 明明1109 阅读(660) 评论(0) 推荐(0) 编辑
摘要:线程池技术 对于大量并发任务,传统方式处理任务特点: 一个请求一个线程来处理请求任务,大量线程的创建和销毁将消耗过多的系统资源,增加线程上下文切换的开销。 线程池技术特点: 在系统中预先创建一定数量的线程,当任务请求到来时,从线程池中分配一个预先创建的线程去处理任务,线程处理完任务后还可以重用,不会 阅读全文
posted @ 2023-01-06 15:36 明明1109 阅读(283) 评论(0) 推荐(0) 编辑
摘要:17.3 正则表达式 正则表达式(regular expression)是一种描述字符序列的方法,是一种强大的计算工具。这里重点介绍如何使用C++正则表达式库(RE库)。 头文件:<regex>。 组件: regex 表示有一个正则表达式的类 regex_match 将一个字符序列与一个正则表达式匹 阅读全文
posted @ 2022-12-09 23:31 明明1109 阅读(524) 评论(0) 推荐(0) 编辑
摘要:目录registry类意义registry类实现registry数据成员registry函数成员构造与析构单例模式全局注册表initialize_logger初始化logger对象全局格式器预置日志等级flush日志等级默认logger在已注册logger上应用函数回溯最近的log消息线程安全错误处 阅读全文
posted @ 2022-11-27 20:47 明明1109 阅读(1167) 评论(0) 推荐(1) 编辑
摘要:目录相关概念formatter类描述formatter系列类类图关系formatter类pattern_formatter类构造与析构compile_pattern_编译patternhandle_padspec_按pad规格处理handle_flag_ 处理模式标志字符format()格式化log 阅读全文
posted @ 2022-11-19 21:18 明明1109 阅读(1779) 评论(0) 推荐(1) 编辑
摘要:目录sinks系列类简介特点sinks继承体系sink类sink类声明日志等级阈值sink子类null_sink类模板base_sink类模板basic_file_sink类模板文件工具类file_helperdaily_file_sink类模板dist_sink类模板dup_filter_sink 阅读全文
posted @ 2022-11-08 19:21 明明1109 阅读(2902) 评论(0) 推荐(1) 编辑
摘要:目录特性类图关系logger数据成员logger函数成员构造与析构构造函数拷贝构造、移动构造交换操作log()记录日志消息格式串普通字符串日志级别宽字符支持sink_it_:将log消息交给sink对象写日志控制线程安全backtracer类错误处理logger类应用创建logger对象同步工厂方法 阅读全文
posted @ 2022-10-30 01:17 明明1109 阅读(2839) 评论(4) 推荐(2) 编辑
摘要:目录自定义异常类spdlog_ex通用异常系统调用异常what()函数异常的使用抛出异常控制异常使用 自定义异常类spdlog_ex 标准库异常类(std::exception)系列,能满足大多数使用异常的场景,但对系统调用异常及错误信息缺乏支持。spdlog通过继承std::exception,扩 阅读全文
posted @ 2022-10-27 11:21 明明1109 阅读(1160) 评论(0) 推荐(2) 编辑
摘要:目录线程池thread_pool简介多生产者-多消费者阻塞队列模型阻塞与非阻塞方式插入数据取出数据overrun异常处理机制其他接口环形队列circular_qthread pool模型thread pool实现thread_pool类接口构造与析构构造函数析构函数post_log插入log消息po 阅读全文
posted @ 2022-10-27 01:30 明明1109 阅读(3703) 评论(1) 推荐(2) 编辑
摘要:目录安装编译、运行平台编译、安装直接拷贝include文件到用户的项目Windows下编译使用spdlogWindows下使用spdlog参考 安装 编译、运行平台 Linux,FreeBSD,OpenBSD,Solaris,AIX Windows(MSVC 2013+,cygwin) MacOS( 阅读全文
posted @ 2022-10-15 22:54 明明1109 阅读(3947) 评论(0) 推荐(0) 编辑
摘要:目录简介资源 简介 spdlog是一个非常快、基于头文件编译的、跨多平台的C++日志库。 特点: 运行非常快 基于.h头文件(很奇怪是不是)实现 不依赖第三方库(不太严格,只是不需要专门安装,如fmtlib) 支持跨多平台,如Linux、Windows、macOS 32/64bits 支持单线程、多 阅读全文
posted @ 2022-10-15 22:49 明明1109 阅读(1677) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页