交叉编译Boost

交叉编译Boost 交叉编译务必注意配置 sysroot ,网上个个都没配就说编出来了,演都不演,也不知道谁抄谁的文章。 开始 官网下载最新Boost文件包,我使用Yocto的交叉编译工具链在1.86.0版本测试是没问题的。 ...

2024-08-30 · 4 分钟 · 3rd

C++获取枚举元素数量

C++获取枚举元素数量 最近有个特殊需求,需要获取一个枚举类型的元素数量,于是学到了以下骚操作。 解释 操作源自网站stack overflow的一个提问《是否可以确定 c++ 枚举类的元素数量?》。 ...

2024-08-29 · 4 分钟 · 3rd

C++条件变量wait方法的误区

C++条件变量wait方法的误区 查看GitHub上的ThreadPool时发现以前理解上的一个误区。 wait的重载 C++条件变量用于等待的相关方法wait、wait_for、wait_until存在一个重载参数Predicate pred: 1 2 template< class Predicate > void wait( std::unique_lock<std::mutex>& lock, Predicate pred ); cppreference对其的说明: wait 导致当前线程阻塞直至条件变量被通知,或虚假唤醒发生。可以提供 pred 以检测虚假唤醒。 ...

2024-08-24 · 1 分钟 · 3rd

C++项目惯例

C++项目惯例 这里没有标新立异,对于老项目务必做到和历史代码风格统一,对于新项目做到和团队风格统一,对于没有明确要求或个人的项目做到前后风格一致。 我的风格 这里推荐一个Google 开源项目风格指南,比较全面;至少微软的指南我没找到有这个全面的。 ...

2024-04-16 · 4 分钟 · 3rd

C++的前向声明

C++的前向声明 有些时候,尤其是写会提供给其他人使用的库的时候,不想暴露过多细节,也不想让使用库的人引入不必要的头文件,可以使用前向声明避免在头文件引入其他头文件而可以使用其中的类型。 ...

2024-01-25 · 4 分钟 · 3rd

动态链接spdlog的cmake配置

动态链接spdlog的cmake配置 由于spdlog仅头文件形式编译会大大增加二进制文件大小,同时我有多个程序都要使用,为了节省资源,考虑使用动态链接,但是网上查了一圈都没有效内容,最后跟ChatGPT讨论出来了。以下给出cmake配置动态链接spdlog的办法。 ...

2023-12-05 · 1 分钟 · 3rd

C++什么时候应该用decltype

C++什么时候应该用decltype decltype通常应该被封装在通用(模板)库中,仅在完全必要的情况下使用。除此以外,非滥用的auto才是日常编程的语法糖。 1. 什么是decltype decltype 的名称是由 “declare” 和 “type” 组合而来,表示它用于声明类型。 ...

2023-12-05 · 3 分钟 · 3rd

CLion使用鼠标侧键前进后退

CLion使用鼠标侧键前进后退 不知道官方快捷键支不支持浏览代码时使用鼠标侧键前进后退,VSCode快捷键插件原生是不支持的,但是可以手动添加。 步骤 菜单栏的导航下提供了前进后退的操作,找到设置 -> 按键映射 -> 主菜单 -> 导航,其下有前进、后退操作,右键点击选择添加鼠标快捷方式,并设置为鼠标侧键。 ...

2023-10-30 · 1 分钟 · 3rd

C++单例模板

C++单例模板 单例的写法基本都相同,定义一个模板方便使用单例模式。 分析 单例模式需要确保资源初始化是线程安全的,因而出现了以下几种方法(选自《C++ 单例模式的模板实现》、《单例模式很简单?但你真能写对吗?》): ...

2023-06-29 · 4 分钟 · 3rd