自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(19)
  • 收藏
  • 关注

原创 c++20 formatting(fmt)使用方法

Format是一个编程语言非常重要的一环,c++的iomanip里的各种骚操作,在长字符串使用中是一个灾难。因此在c++20中提出了新库formatting,用类似于python的语法实现了fromat。但是目前实际项目中最多到c++17,有的项目甚至在用c++11。还好,fmt库就是formatting。fmt实现了几乎所有C++20的formatting 库,只有非常细微的差别。

2023-02-02 19:09:55 4196

原创 QSqlDatabase 的多线程问题

一种解决社区版QSqlDatabase的多线程问题的方法。

2022-06-25 09:36:27 1489 2

原创 StarUML 插件的离线

最近需要离线使用StarUML(3.0.1),主要是插件不太好安装。如下:没有离线安装的位置,点击Issues可以到github下,尝试Install from Url...,换成本地路径无果。后来发现在下面的目录发现了源码,C:\Users\XXX\AppData\Roaming\StarUML\extensions\user 只要在github上下载源码,解压到该目录,...

2018-07-28 22:05:00 3293

原创 Qt 抛出异常的容器

QList的at当超出范围时,不抛出异常,而是程序直接崩溃。是因为QList的at函数如下template inline const T &QList::at(int i) const{ Q_ASSERT_X(i >= 0 && i ::at", "index out of range"); return reinterpret_cast(p.at(i))->t(); }Q_ASSERT

2018-01-27 20:34:10 9491 4

原创 singleton

最近碰到一个同事讨论全局访问的对象,想起来这个模式,比起这个模式更有意思的是这个模式各种实现中学习到的c++知识。记录下我曾经学习到的单件模式,和曾经实现的版本。我给他提供的实现是meyer版本:templateclass Singleton{public: static Type& GetInstance() { static Type valu

2018-01-09 22:16:22 264

原创 recompile with -fPIC

ubuntu 16.04上封装boost库(需要编译的库)为动态库的时候,碰到类似错误:relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC开始以为是给动态库添加-fPIC,后来发现是给boost添加,在编译b

2018-01-09 22:10:15 3230

翻译 c++ concurrency in action中的 SpinLockMutex

如下:class spinlock_mutex{ std::atomic_flag flag;public: spinlock_mutex() : flag(ATOMIC_FLAG_INIT) { } void lock() { while (flag.test_and_set(std::memory_order_acquire)); } void unlock...

2017-12-19 21:34:40 213

原创 QQmlParserStatus

最近项目用到QQmlParserStatus,这个类型提供当被QQmlEngine创建时,在创建的不同时机给予通知。class Q_QML_EXPORT QQmlParserStatus{public: QQmlParserStatus(); virtual ~QQmlParserStatus(); virtual void classBegin()=0; v

2017-11-19 07:45:45 915

原创 qtquick 与c++交互总结

交互方式分为四种,qml访问C++,C++调用qml,model/delegate/view机制,使用序列化字符串json:qml访问C++qml不能直接访问c++的类型,C++类型必须注册到元对象系统才能被qml访问。qml可以访问属性、信号、槽、枚举定义(Q_ENUM)、函数(Q_INVOKABLE)。下面以Student类为例,演示上面的各个类型,第一种方式,注册类型,第一步

2017-11-04 15:11:03 2895

原创 条纹进度条

qml实现的一个条纹进度条

2017-11-04 14:32:45 1388 1

原创 function 源码分析3--c++11 function源码分析

分析的是gcc的function源码。

2017-01-09 21:44:44 1166

原创 function 源码分析1--boost function缩水版本实现

function的boost缩水实现

2016-11-05 20:53:25 654

原创 function 源码分析2--boost function的源码分析

分析了boost function的源码实现

2016-10-27 19:57:18 1189

原创 function源码分析 前言

写给我自己看的

2016-10-27 18:22:40 303

原创 tinyxml2源码分析-4

接下来分析写文件,这个简单,使用visitor设计模式来实现,visitor接口如下,注意Element的visit接口,传入了XMLAttribute指针 来遍历Attributeclass XMLVisitor{public: virtual ~XMLVisitor() {} /// Visit a document. virtual bool VisitEn

2016-09-28 21:02:43 745 1

原创 tinyxml2源码分析-3

有了所有的子节点,可以开始编写LoadFile的代码了,XMLError是个枚举类型,一般而言,先定义一个枚举,同时定义XML_SUCCESS=0,因为成功不需要理由,失败者总是需要借口。等到编码到后期再添加错误码。XMLError XMLDocument::LoadFile( const char* filename ){ Clear(); FILE* fp = cal

2016-09-26 21:50:05 972

原创 tinyxml2源码分析-2

我们实现了XMLNode,接下来我们实现XMLTextclass XMLText : public XMLNode{ friend class XMLDocument;public: virtual XMLText* ToText(){ return this; } virtual const XMLText* ToText() const{ return this;

2016-09-25 20:04:53 1100 2

原创 tinyxml2源码分析-1

换一种方式来对源码分析,从零开始“写”一个tinyxml2。提前郑重声明,本博客所有大tinyxml代码都直接copy自tinyxml源码。在开始分析源码前,如下图所示,是tinyxml2的各个主要类型,XMLAttribute其实是一个单向链表,放在后面实现。tinyxml2把xml文档建立成一棵DOM树,具体实现用的是firstchild–nextsiblingtree,如

2016-09-25 17:10:03 1095

原创 tinyxml2使用方法

最近项目中使用到xml,最终选用了tinyxml2,学习后写个使用总结。

2016-09-25 16:23:54 4917 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除