- 博客(6)
- 收藏
- 关注
原创 C++23 import std 进展汇总
GCC 14 (2024/4)未支持,希望 GCC 15 (2025/4)会支持。GCC 17/18 部分支持,19 (2024/9)会默认开启。MSVC 19.36 已经支持。
2024-03-13 17:47:25 1161
原创 C++20 barrier & latch —— 到齐再走
为了进行线程间同步,C++20 引入了两个同步的库 barrier 和 latch。相同点:两者都能实现 n 个线程在某处同步后继续执行后续任务(例如初始化场景、等待数据到齐)。区别:一个 barrier 对象可以重复使用;而一个 latch 对象是一次性的且高性能的。我个人喜欢叫 barrier 栅栏,叫 latch 门闩 (而非锁存器)。
2024-01-17 21:13:22 367 1
原创 C++20 std::jthread——自动 join 的 std::thread
std::jthread 像 std::thread 一样,区别在于析构时自动调用 join 进行等待,用起来更方便。
2024-01-12 17:42:08 578
原创 C++20模板的非类型参数:常量结构体
传统 c++ 的非类型模板参数(non-type template parameters) 只能是简单类型,例如 int、bool、指针等。在模板类依赖于很多 int 模板参数时,模板类的类型通常会很长,影响代码阅读。
2024-01-10 11:26:54 387
原创 LeanStore 的编译 (于 ubuntu 22.04)
编译时还会遇到 undefined reference to `typeinfo for rocksdb::DB' 的错误,原因是 apt 中安装的 RocksDB 没有启用 RTTI 编译选项,删除后从源码编译即可。LeanStore 是一个学术界持续推进的 larger-than-memory 的 database。在编译测试的时候会提示以下缺少如下部分库,采用如下命令可以安装缺少的库。
2023-08-14 20:15:19 164
原创 pip3 安装 tesserocr 失败(macOS)
现象报错没有 leptonica/allheaders.h报错 ld: library not found for -ltesseract解决方案brew install tesseractCPPFLAGS=-I/opt/homebrew/include LIBRARY_PATH=/opt/homebrew/lib pip3 install tesserocr解释:安装tesserocr依赖的环境tesseract,并且设置变量将include和lib path暴露给pip3。..
2022-04-22 18:00:59 913
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人