C++11上的简单format函数
C++20引入了std::format,但是如果我们不得不在低版本的C++上工作,而且又无法使用外部库的话,那不如自己来写一个吧。
841 words
|
4 minutes

近距离观察fma对精度的提升
fma即融合乘加,也就是对三个数,前两个数先乘,再与第三个数相加。很多人不理解,为什么fma与普通的先乘后加有精度上的差异,这里做一个细致的观察。
2006 words
|
10 minutes

C++ - 从valarry到simd
很久以前,C++就有支持运算符操作的valarray了,C++23之后会有simd,实际上运算符的问题相当复杂,值得探讨一下
1119 words
|
6 minutes

近距离观察C++20`[[likely]]`和`[[unlikely]]`属性
C++20引入了两个新的属性`[[likely]]`和`[[unlikely]]`,这两个属性可以帮助编译器优化代码,这一篇来观察一下对应的汇编代码。
705 words
|
4 minutes

C++黑魔法 - 编译期变量
编译期变量目前实际上在C++里是不存在的概念,因为C++的模板编程是函数式范式,但是其实可以利用C++编译器的漏洞来间接做到,所以是黑魔法,这里仅仅做有趣的探讨。
977 words
|
5 minutes

C语言根据宏参数个数不同采取不同动作
有的时候我们希望当宏参数不同时,C语言能够采取不同的动作,例如只有一个参数时,扩展成一个if,当有两个参数时,扩展成一个if和一个else if。实际上使用一些技巧完全可以让C宏做到这件事。
343 words
|
2 minutes
