- 博客(7)
- 收藏
- 关注
原创 C++ 使用MP对类进行重设计
看起来可以工作,对于大小大致相同的string字段使用了相同的分配器,无论是从代码可读性、效率上来说它都没有错,但对payload字段使用了独立的分配器因为我们无法确认消息内容的大小。这里我们发现序列化方法SerializationMessage无法应对模板参数Payload类型的各种变化,解决方案是将变化委托出去交给外层去做,是的,我们还是需要添加间接的中间层来优化。Q1&Q2问题得到了解决并且很好的兼容了原有的调用,并且你拥有了一个很好的设计。所有的Payload都是可扩展的啦,并且拥有足够的弹性。
2023-09-26 15:47:15
325
2
原创 QtPromise源码剖析-CPP模板元编程
目录Promise概念QtPromise开源模板库QtPromise模板库中所使用的设计模式1.QtPromise中的构建模式2.QtPromise中的装饰模式QtPromise模板库中使用到的元编程技巧1. 模板元函数2.全特化&偏特化构建if-then-else3.Type Traits 类型特征4.SFINAEQtPromise源码分析和实现思想1. QtPromise的UML 时序图2. QtPromise源码分析设计...
2021-09-28 20:07:47
1748
1
原创 Qt源码剖析-智能指针
智能指针是什么?1. 智能指针是使用RAII技术(惯用手法)对裸指针进行封装、隔离、管理。2. 把堆对象转移为栈对象。为什么使用QT智能(smart)指针?CPP中在使用堆内存时我们必须使用指针,使用指针给我带来便利和强大的威力同时也给我们带来了很多隐患,所以指针也是把双刃剑。常见的隐患有:1. 我们在使用new创建一个对象的同时,由于种种原因而忘记了delete从而导致内存泄漏影响应用运行效率2. 我们在使用一个指针的时候不知道该指针指向的对象是否已经析构,从而导致使用一个错误
2021-09-26 20:22:34
1357
原创 基于Qt网络库的简单设计
现代应用(app)对于网络的依赖可以说无处不在,网络库设计的好坏直接影响到系统的健壮性.本文基于Qt 网络模块来设计一个基础网络库,
2021-02-26 14:19:44
3013
2
原创 QT源码剖析-QT对象通信机制信号槽的绑定具体实现
本文介绍QT核心机制之一的信号和槽。核心知识点:模板元编程技术、Qt moc预编译机制、 QObject类一: 信号槽实现的助手类:信号槽主要依赖以下类型萃取模板元函数:1. 函数指针类型萃取元函数,此处贴出基本常用的。 为保证篇幅不至于太长,其他偏特化类型萃取元函数不做说明。: 函数指针类型萃取元函数声明定义, 提供函数指针类型的参数个数和是否是成员函数指针默认枚举值。(实际使用中基本不会匹配此类型萃取元函数): 类型的成员函数指针类型偏特化版本::Functio.
2020-11-23 18:24:33
2124
1
原创 MSVC libcurl+openssl+zlib windows 编译过程
MSVC libcurl windows 编译过程libcurl下载: https://curl.haxx.se/windows/.为什么自己要编译windows版本libcurlcurl官网编译出来的windows库文件为.a 后缀(原因是libcurl拿mingw编译) MSVC无法直接使用,需要转换为lib文件。下载的pe文件无源码,无pdb符号文件。 对于源码调试问题定位不友好。官网给出的pe文件已经静态链接到指定第三方库,无法灵活定制化。libcurl msvc两种编译方式
2020-09-09 15:38:14
679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人