
C++语言相关
文章平均质量分 93
C+G
也就那样
展开
-
CLion开发环境的完全解析(QT开发?STM32?顺便速通cmake
而CLion对wsl的适配程度和正常的本机开发几乎没有任何区别,我们只需要现在Windows上安装wsl2后,CLion便可以自动识别你本机的wsl环境了,但是你有了wsl,并不意味着你有了对应的编译链,之前说了,编译链是包括四个东西的,你需要一一手动再wsl上先安装好,CLion会自动识别到的,如果识别不到,由于是通过。理解了这三步以及cmake的配置之后,我相信如果突然间CLion不出现执行程序的按钮,或者一个外部的项目我们无法跑起来,那么我们肯定是会有对应的排查思路了。原创 2023-01-04 21:47:17 · 3881 阅读 · 0 评论 -
chatgpt教我内存对齐,对齐了但没完全对齐?
判断值v是否按x,这其实是很简单的道理,首先这个公式只能运用于2的n次方,其次这是一个很明显的利用位运算的取模操作,只能运用于 2 的 n 次方的原因在于 只有满足这种情况 x-1 后才能是连续完整的二进制填充位(比如 01000 -1 = 00111)。得到值v按x,这里的x同样只能是2的n次方,这也是一个很简单的道理,我举个例子你就懂了。如果要让 123 按照 8 字节边界对齐,我们首先写出 123 对应的二进制1111011,8为1000。原创 2022-12-19 22:56:37 · 3303 阅读 · 0 评论 -
别再推荐使用 jsoncpp 了
等STL容器默认的拷贝行为,一个简单粗暴的优化方式就是通过传指针的方式而不是传值的方式,但是这样外界就需要来管理内存了,否则会产生内存泄漏等问题。优化的前提下,某个库如果大量用到 STL 以及元模板编程的时候,STL 会拖后腿,而元模板也没法发挥最大效用。而且差距也没有大佬视频里面那么大,两倍的差距而已,这对于一个浅拷贝和深拷贝的性能差距是很正常的。解析库,性能的对比对象就是这个库,我记得是略有不如。如果有用过 jsoncpp 的,以及其他语言的json库的,我觉得都会认为。则是不拥有所有权的方式优化。原创 2022-11-27 23:22:57 · 1813 阅读 · 0 评论 -
C++编译期反射实践——以AOP实现为例
自古以来,C++就一直缺少一个编程语言的重要特性——反射,但如果熟悉C++元模板编程的同学,就知道以C++的风格,肯定是不会在标准库中添加运行时的反射支持的,从最新的C++版本演进来看,倒是编译期反射可能得到更好的支持。C++11 -> C++14 -> C++17 -> C++20… 不断让元模板编程变得更简单,更规范。本次的编译期反射实践,代码要求的最低C++版本为14,因为用到了 make_shared、decay_t。本次实践的完整代码仓库:MyUtil/tree/master/aop我们如何判断某原创 2022-11-26 02:32:58 · 2057 阅读 · 1 评论 -
”更高级的宏“模板到底是怎么实例化的?
文章目录从预编译的角度对比宏定义和模板来测测宏定义宏定义的害处模板是否会进行预处理操作?善用编译期的模板为什么大多数模板库声明和定义都放在一起?声明和定义分开处理的原因为什么模板要把声明和定义写在一起?如何防止模板类的重复定义?一些简单且常用的模板技术template + 函数声明将模板提前实例化一份type_traits(类型萃取技术)type_traits + static_assert()的运用assert和static_assert的对比type_tarits的运用本文默认你已经拥有基本的gcc原创 2022-03-05 18:17:31 · 823 阅读 · 0 评论 -
[C++] 用bitset代替bool数组的性能测试以及bitset的基本使用
文章目录bitset介绍使用¶头文件¶指定大小¶构造函数¶运算符¶成员函数¶应用¶算法样例题bitset与埃氏筛结合埃氏筛速度测试bitset介绍std::bitset 是标准库中的一个存储 0/1 的大小不可变容器。严格来讲,它并不属于 STL。bitset 并不属于 STL,而是一种标准库中的 “Special Container”。事实上,它作为一种容器,也并不满足 STL 容器的要求。说它是适配器,它也并不依赖于其它 STL 容器作为底层实现。——摘自《The C++ Standard L原创 2022-02-22 16:52:28 · 3658 阅读 · 2 评论