Amethyst Studio
C++11上的简单format函数
2023-06-12
C++20引入了std::format,但是如果我们不得不在低版本的C++上工作,而且又无法使用外部库的话,那不如自己来写一个吧。
841 words
|
4 minutes
Cover Image of the Post
近距离观察fma对精度的提升
fma即融合乘加,也就是对三个数,前两个数先乘,再与第三个数相加。很多人不理解,为什么fma与普通的先乘后加有精度上的差异,这里做一个细致的观察。
2006 words
|
10 minutes
Cover Image of the Post
C++ - 从valarry到simd
2023-05-26
很久以前,C++就有支持运算符操作的valarray了,C++23之后会有simd,实际上运算符的问题相当复杂,值得探讨一下
1119 words
|
6 minutes
Cover Image of the Post
几个常用的C/C++builtin函数
介绍几个工作中好用且常用的几个C和C++的builtin函数
380 words
|
2 minutes
Cover Image of the Post
近距离观察C++20`[[likely]]`和`[[unlikely]]`属性
2023-04-22
C++20引入了两个新的属性`[[likely]]`和`[[unlikely]]`,这两个属性可以帮助编译器优化代码,这一篇来观察一下对应的汇编代码。
705 words
|
4 minutes
Cover Image of the Post
计算机是如何计算三角函数的
从数学的角度,解释计算机是如何计算三角函数的,高难预警
2104 words
|
11 minutes
Cover Image of the Post
C++黑魔法 - 编译期变量
2023-03-28
编译期变量目前实际上在C++里是不存在的概念,因为C++的模板编程是函数式范式,但是其实可以利用C++编译器的漏洞来间接做到,所以是黑魔法,这里仅仅做有趣的探讨。
977 words
|
5 minutes
Cover Image of the Post
C语言根据宏参数个数不同采取不同动作
2023-03-11
有的时候我们希望当宏参数不同时,C语言能够采取不同的动作,例如只有一个参数时,扩展成一个if,当有两个参数时,扩展成一个if和一个else if。实际上使用一些技巧完全可以让C宏做到这件事。
343 words
|
2 minutes
Cover Image of the Post