C++ – 详解std::future
1 详解std::future 1.1 std::future 类模板std::future提供了一种访问异步操作结果的机制,这种异步操作可以是std::promise、std::packaged、std::async。 std::future这个名字起得就很有意思,字面上future就是未来的意思…
- C++
- 2024-01-12
C++ – 详解std::async
1 详解std::async 1.1 std::async 作用 std::async可以异步在一个独立线程中运行线程函数F,并且返回一个存储线程函数F运行结果的std::future,简而言之就是C++提供的高级异步接口。 函数原型 template< class Function, cla…
- C++
- 2024-01-12
C++ – 实现一个小但美的线程池
1 线程池 1.1 线程池需要实现的功能 线程池需要支持以下几个基本功能: 核心线程数(core_threads):线程池中拥有的最少线程个数,初始化时就会创建好的线程,常驻于线程池 最大线程个数(max_threads):线程池中拥有的最大线程个数,max_threads>=core_thread…
- C++
- 2024-01-11
C++ – 使用Crypto++对字符串进行md5加密和md5校验
1 使用Crypto++对字符串进行md5加密 使用Crypto++计算字符串的md的md5值,需要使用到Crypto++以下类: StringSource: 用于从字符串或二进制数据中读取数据 HashFilter: 表示一个用于计算哈希的过滤器。它接受一个哈希函数作为参数,这里是 md5 md5…
- C++
- 2024-01-08
C++ – 使用Crypto++计算文件md5值
1 使用Crypto++计算文件的md5值 使用Crypto++计算文件的md的md5值,需要使用到Crypto++以下类: FileSource: 用于从文件中读取数据 HashFilter: 表示一个用于计算哈希的过滤器。它接受一个哈希函数作为参数,这里是 md5 md5: 用于计算输入数据的 …
- C++
- 2024-01-08
C++ – 跨平台开发,判断操作系统类型
各个操作系统都有其对应的内置宏: Windows:WIN32、_WIN32、_WIN32_、WIN64、_WIN64、_WIN64_ Linux:_linux_ Android:ANDROID、_ANDROID_ Mac/iPhone:_APPLE_、TARGET_OS_IPHONE、TARGET_…
- C++
- 2024-01-02
CMake – 判断当前操作系统类型
CMake中经常需要判断当前操作系统,然后根据不同系统类型进行特定编译选项的控制,在CMake中判断当前操作系统类型有以下几种方法。 1 第一种方法 CMake 2.6以上判断可以使用以上内置变量 MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}…
- C++
- 2024-01-02
libhv – Windows编译libhv以及在Visual Studio中配置开发环境
1 Windows中使用CMake编译libhv 1.1 使用命令行 libhv的github中给出了在Windows上使用CMake命令行创建libhv Visual Studio项目的命令,如下 mkdir win64 cd win64 cmake .. -G "Visual Studio 15…
- C++
- 2023-12-28
C++ – 数据库连接和操作第三方库整理
1 soci github:https://github.com/SOCI/soci sourceforge:https://soci.sourceforge.net/ SOCI是一个C++数据库访问第三方库,目前支持以下数据库: DB2 Firebird MySQL ODBC (generic b…
- C++
- 2023-12-12
C++ – 对std::vector存储的结构体按照结构体内某个成员进行升序排序和降序排列
1 C++对stdvector内存储的结构体按照结构体内某个成员进行升序排序和降序排列 假设有一个Person结构体 struct Person { std::string name; int age; int score; Person(const std::string& name_in…
- C++
- 2023-12-01
C++ – 总结C++的可调用类型Callable
转载自:https://www.chuxin911.com/C++_callable_objects_summary_20211120/ ,如侵联删。 C++中有很多Callable类型,本文将介绍Callable 的基础概念, 典型的 Callable 类型,例如函数对象(狭义),函数指针,lam…
- C++
- 2023-11-03
C++ – 深入理解右值与移动语义
转载自:https://www.chuxin911.com/c++_rvalue_move_20220104/ ,如侵联删 本文总结一下我对 C++ 右值与移动语义的理解,主要分为值类型、右值引用,以及移动语义的实现。 1 问题 首先第一个问题:把大象从一个冰箱移到另一个冰箱里, 问总共分几步? 第…
- C++
- 2023-10-31