- 博客(10)
- 问答 (1)
- 收藏
- 关注

原创 json与C++结构体互相转换
代码github地址用于在C++结构体和json/xml/json/libconfig之间互相转换 json/xml只需要头文件, 无需编译库文件 json缺省支持,其他的需要修改config.h开启相应功能 以下例子全部以json为例,其他的类似,具体可以参考x2struct.hpp里面x2struct::X的api定义目录基本用法必需节点别名继承位...
2018-02-19 21:32:17
30347
29
原创 samba环境下sublime text使用gopls
这里说一下要做路径替换的原因:本地和远端的文件的路径是不一样的,比如sublime打开了x:\gocode\example.go,但是远端是不存在这个文件的,远端对应的文件是/home/helloworld/gocode/example.go,所以要进行路径替换,否则Windows发过去的文件路径远端识别不了,远端返回的文件路径本端也识别不了。,发现作者遇到的问题和我的很相似,本想直接用,但是作者的路径替换是写死的,想搞成个可配置的,所以参考了作者的方法重新撸了一遍。网上搜了一下,搜到了篇。
2023-03-25 19:24:37
283
原创 Golang读写锁读锁重复获取的问题
遇到Golang的sync.RWMutex的一个坑,同一个协程重复获取读锁导致的死锁为题。代码如下var ( l sync.RWMutex)func f1() { l.RLock() defer l.RUnlock() f2() // ...}func f2() { l.RLock() defer l.RUnlock()...
2018-11-09 19:05:04
3719
3
原创 mongo-cxx-driver的简单封装。
代码在:https://github.com/xyz347/mongoxclient受Golang启发写的,可以像golang一样直接操作结构体。只有基本接口,还不是很完备。范例:(里面很多代码是用来初始化结构体的,和封装没关系,封装的接口后面加了注释方便区分)#include <iostream>#include <mongocxx/client.hpp>...
2018-11-03 20:25:09
1629
原创 C++ UTF8字符串截断
有个场景是如果字符串超出一定的长度需要进行截断,由于std::string是按字节存储,直接substr会导致utf8被错误的截断,导致客户端显示异常。写了个用来处理UTF8编码下的截断函数:#include <iostream>#include <string>using std::cout;using std::endl;std::string Utf8Su...
2018-04-18 17:48:07
2784
原创 一种改进哈希冲突的方法
通过双向链表来改善冲突的处理方式。具体看源文件注释,哈希计算方法一个抄Linux的,一个是网上找的,均有说明。头文件#ifndef __BFLS_HASH_H#define __BFLS_HASH_H#ifdef __cplusplusextern "C" {#endiftypedef unsigned int (*bfls_hash_hashf)(void *da
2016-01-21 20:53:57
485
原创 C/C++ 获取不带路径的文件名的方法
在源码中有时候需要用到文件名,比如log的时候一般都会把文件名打印出来,__FILE__这个宏就是干这事用的。但是这个宏会把路径也带进来,而有时候我们只需要一个简单的文件名而已。实现方法,通过shell或者Makefile自带的函数,去掉文件的路径,用宏的方式传递进去即可。Makefile:%.o:%.c gcc -o $@ -c $如果是用的blade这个构建工
2016-01-21 20:29:59
5761
原创 红黑树
秉承talk is cheap, show me the code的理念,废话不多说,上代码。头文件#ifndef __BFLS_RBTREE_H#define __BFLS_RBTREE_H#ifdef __cplusplusextern "C" {#endif/* 遍历顺序 */typedef enum{RB_TREE_ORDER_PRE,R
2016-01-16 21:57:16
382
空空如也
c++有获取core dump文件名的的api吗
2016-01-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人