
C++高性能并行编程
文章平均质量分 88
惊鸿.Jh
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
03.模板元编程与函数式
模板函数-特化的重载;如果函数无参,编译器无法推断,此时应:add();//手动给定模板参数类型。原创 2023-05-14 16:51:26 · 120 阅读 · 0 评论 -
04.编译器优化与SIMD指令集
同理,编译器为了防止指针别名现象,会生成两份汇编代码(普通版和SIMD版本),然后进行指针做差运算判断有无指针别名现象,为了避免此操作造成的效率损失,也应加入__restrict关键字。局部可见函数static,使用此关键词声明,就不会将该函数暴露给其他函数,此时编译器优化后,压根就不会定义该函数,直接内联。对于非4的倍数,编译器也会自动进行边界特判。对于循环之中的判断语句,编译器会挪到外面,前提是判断语句在循环当中不会改变。对于连续的地址,两个32位的写入,编译器可以直接优化为一个64位写入。原创 2023-05-22 13:21:25 · 746 阅读 · 0 评论 -
02.RAII与智能指针
std::move(v2) //不会清空v2,需要清空可以用v2={}(调用了默认构造函数或移动赋值函数)或v2.clear()std::unique_ptr p=std::make_unique();for_each(v.begin(),v.end(),func)//函数模板,对于每一个vi都调用func函数;std::as_const(v2)//不会拷贝v2,需要拷贝可以用{auto_=v2}v1=std::vector(200) //就地构造的v2。p=nullptr;原创 2023-05-11 20:15:33 · 141 阅读 · 0 评论 -
01.从CMake讲起
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。原创 2023-05-08 22:42:54 · 340 阅读 · 0 评论