
C++
kgduu
这个作者很懒,什么都没留下…
展开
-
C++设计新思维:泛型编程与设计模式之应用学习笔记
主持类与策略类依赖方式。原创 2025-01-18 22:48:58 · 269 阅读 · 0 评论 -
valgrind安装及使用
下载源码。原创 2024-08-29 22:31:29 · 379 阅读 · 0 评论 -
C++中如何将类的非静态成员函数绑定到函数指针上
在c++11中,可以通过std::bind将非静态成员函数绑定到function对象上,但是如何绑定到c中的函数指针上,可以借助function。原创 2024-08-23 08:39:10 · 294 阅读 · 0 评论 -
编译protobuf 2.5 arm版本遇到的问题
在指定–host=aarch64-linux-gnu时报不支持defineddefined11。原创 2024-08-20 16:25:40 · 481 阅读 · 0 评论 -
stl之deque分析
Map_pointer :为T**_Elt_pointer:为T*原创 2024-08-13 23:43:51 · 983 阅读 · 0 评论 -
调试时程序很诡异的问题
在调试问题时,明显逻辑不成立,但是还是进入成立的逻辑里,刚开始以为是代码问题。原创 2024-08-07 10:54:18 · 472 阅读 · 0 评论 -
windows内存泄漏检查汇总
点击运行安装。原创 2024-08-02 23:04:41 · 444 阅读 · 0 评论 -
window debug程序异常退出时不弹出abort窗口
在使用procdump监视程序异常退出时,希望生成dump文件,而由于弹出窗口等待用户点击没有输出dump文件,而是在用户点击后才弹出,可能输出的不是最新的dump文件。原创 2024-07-24 10:03:26 · 227 阅读 · 0 评论 -
window下分析程序core
在没有安装visual studio时,直接运行exe程序执行一段时间后,出现core,如何定准程序core在哪个地方。原创 2024-07-19 09:50:23 · 544 阅读 · 0 评论 -
获取线程id
获取的线程id是通过gdb的info threads查到的线程id一致。原创 2024-07-10 20:21:07 · 325 阅读 · 0 评论 -
vs2017 调试时无法进入静态库源代码解决办法
在调试时,无法进入到静态库的源代码。原创 2024-07-02 16:34:54 · 456 阅读 · 0 评论 -
rapidjson源码解析
fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;Handler。原创 2024-06-23 09:25:29 · 894 阅读 · 0 评论 -
rapidjson使用中crash问题分析
在使用rapidjson时,使用Document的Parse方法解析json字符串,程序crash。原创 2024-06-22 19:48:00 · 482 阅读 · 0 评论 -
rapidjson之内存分配器
内存池分配器。原创 2024-06-20 23:10:15 · 844 阅读 · 0 评论 -
std::bind未找到匹配的重载函数问题解决
在编译时报std::bind未找到匹配的重载函数。原创 2024-05-13 11:20:47 · 536 阅读 · 0 评论 -
protoc编译错误 File does not reside within any path specified using --proto_path (or -I)
在使用protoc.exe编译proto文件时,报File does not reside within any path specified using --proto_path (or -I)原创 2024-05-11 16:24:09 · 592 阅读 · 0 评论 -
c++总结(持续更新中)
1、c++的默认继承方式为private。原创 2024-04-23 10:24:47 · 261 阅读 · 0 评论 -
pair作为unordered_map的key报错
pair作为unordered_map的key报错,编译时会报错。原创 2024-04-02 19:26:05 · 631 阅读 · 0 评论 -
protobuf在vs中编译版本
vs2010编译不过。vs2010编译通过。原创 2024-03-30 17:16:59 · 200 阅读 · 0 评论 -
C++ Error C2280 尝试引用已删除的函数问题解决
在C++11的标准中,编译器会自动将默认拷贝构造函数删除,以防止出现浅拷贝等不确定行为,等同于Myclass(Myclass& str) = delete;原创 2024-03-13 17:21:14 · 1302 阅读 · 0 评论 -
protobuf 25.3在window的安装
1、下载地址。原创 2024-03-06 21:56:35 · 636 阅读 · 0 评论 -
未定义基类问题解决
基类A, 子类B。原创 2024-02-03 15:39:26 · 391 阅读 · 0 评论 -
boost graph计算最短路径程序异常退出问题解决
之前使用的boost 1.55版本,升级使用1.73版本后,在调用dijkstra_shortest_paths时会出现弹窗。而1.73版本中距离合并使用的是std::plus< D >()直接相加,会出现距离计算为负值情况。刚开始时,距离初始值为numeric_limits::max()。发现是在1.55版本中,距离合并使用的是closed_plus。如果其中的一个值是inf,则返回inf,否则作相加操作。点击调试,看调用栈信息,发现计算的距离值为负数。原创 2024-01-10 16:10:51 · 435 阅读 · 0 评论 -
std::numeric_limits::max()编译错误问题解决
在使用numeric_limits的max最大值时,报。原创 2024-01-10 10:26:34 · 871 阅读 · 0 评论 -
为什么不建议使用using namespace?
在工程中编译时,有时会报使用命名不明确的错误,这个就是因为使用using namespace引起的在项目中用到了boost,而boost与std当中有些名字是相同的,如果同时使用了可能会不知道到底使用哪个命名空间的情况。原创 2023-12-29 14:16:00 · 515 阅读 · 0 评论 -
winsock.h与winsock2.h出现重定义或不同的链接 问题解决
在使用了包含头文件前#include<windows.h>加上。在编译qt windows项目时出现错误。在pro文件中添加宏。原创 2023-12-29 10:11:49 · 776 阅读 · 0 评论 -
unordered_map的insert导致core问题
在写lib库里,其中定义了一个全局变量unorderd_map类型,在写demo程序时,调用是没有问题的,但是提供给别人使用时,在插入数据时必现core。怀疑是因为全局变量初始化顺序的不确定导致。后来改在将unordered_map放到一个单独的单例类中得以解决。原创 2023-12-22 09:41:19 · 477 阅读 · 0 评论 -
应用程序无法正常启动0xc00007问题解决
在使用vs2017生成exe后,放到另外一台没有安装 vs的电脑上执行,点击exe报缺少一些库msvcp140d.dll, vcruntime10d.dll, ucrtbasead.dll,查找后将system32下的库复制到exe所在的目录后,仍然报。后来改成将vs2017对应的dll库移动exe所在目录。应用程序无法正常启动0xc00007 这个错误。原创 2023-12-21 11:02:23 · 997 阅读 · 0 评论 -
无法将参数 1 从“const char [14]”转换为“char *”问题
在vs2017中编译时报无法将参数 1 从“const char [14]”转换为“char *”错误。在属性页-》c/c+±》命令行-》其它选项中添加下面即可。原创 2023-12-14 15:14:15 · 276 阅读 · 0 评论 -
多线程访问资源计数不正确问题分析
存在这种情况,在线程1修改状态为-1时,还没有分配资源时,线程2查询状态为-1的记录,然后再分配,会导致线程1和线程2对资源重复分配。线程1:首先修改状态为-1,然后分配资源,资源分配成功后,修改状态为0。线程2:查询状态为-1,然后分配资源,资源分配成功后,修改状态为0。原创 2023-11-22 10:46:27 · 164 阅读 · 0 评论 -
vs2022提示Linker is not set to /PROFILE
在“链接器”->“高级”->“配置文件”,选择"/PROFILE"原创 2023-11-07 13:55:36 · 489 阅读 · 0 评论 -
-std=gnu++11 与 -std=c++11 有什么区别
std=gnu++11,支持C++11标准和GNU扩展特性。-std=c++11,支持C++11标准;原创 2023-11-06 14:57:28 · 942 阅读 · 0 评论 -
死锁问题及分析
加了些日志,发现这个在ReleaseClient函数中构造shared_ptr时,没有指定delete。修改后在项目使用过程中发现执行一段时间后总是是卡死,使用的是boost库中的锁及其条件变量。就会出现线程1调用锁的顺序为lock1->lock2,而线程2调用锁的顺序为lock2->lock1,造成死锁。连接池中用的锁用lock1表示,日志系统中用的锁用lock2表示。而日志系统中也用到了锁,添加日志调用时无序的。最近写了一个hiredis的连接池,借鉴了。将日志调用去掉后,没有出现卡死情况了。原创 2023-09-21 14:23:16 · 203 阅读 · 0 评论 -
vs2010对于c++11的支持
不支持using代替typedef变参模板for each原创 2023-09-19 16:07:26 · 879 阅读 · 0 评论 -
Visual Studio中MD与MT的区别及运行库类型选择
用/MD类型的,工程在链接时会调用MSVCRT.lib和MSVCR90.dll。用/MT类型生成的,则它所调用的运行时库为LIBCMT.lib。原创 2023-09-15 15:35:30 · 2074 阅读 · 0 评论 -
async的用法
std::launch::async:异步调用,与调用线程是不同的线程。std::launch::deferred:延时计算,在调用的线程内。在不带launch类型参数时,默认是异步调用 的。上面policy参数支持的值有。可以看a1,a3和主线程不同。a2与主线程id一致。原创 2023-09-02 20:33:11 · 250 阅读 · 0 评论 -
lambda表达式笔记
=,&a]:除了变量a按引用捕获,其它的按值捕获。[&, a]:除了变量a按值捕获,其它的按引用捕获。[a,&b]:a按值捕获,b按引用捕获。[&]:按引用的方式捕获所有变量。[=]:按值的方式捕获所有变量。[this]:捕获this。原创 2023-08-29 14:11:22 · 105 阅读 · 0 评论 -
C++标准库 -- 读写锁的实现
5.读线程解锁时:1)如果有写线程等待在gate2,检查是否自己是否是最后一个持有读锁的线程,如果是则唤醒gate2。2)如果没有写线程等待在gate2,检查之前持有读锁的线程数量如果等于(2**31-1)则唤醒gate1(基本不可能)。通过gate1的条件是没有写线程等待或已通过gate2(即state最高位为0)并且持有读锁的线程没有达到(2**31-1)(基本不可能)。1.主要变量:互斥锁(mut),第一道门(gate1),第二道门(gate2),读写锁的等待与持有状态(state)。原创 2023-08-23 14:26:15 · 206 阅读 · 0 评论 -
右值及右值引用
在函数返回值没有打开-fno-elide-constructors时,函数返回值会调用拷贝构造函数。右值引用主要是为了优化。原创 2023-08-20 11:33:32 · 133 阅读 · 0 评论 -
C++并发编程实战学习笔记
fill:#333;color:#333;color:#333;fill:none;C++并发编程实战入门。原创 2023-08-17 09:17:29 · 660 阅读 · 0 评论