layout | title |
---|---|
post |
第54期 |
从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态
欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue
标准委员会动态/ide/编译器信息放在这里
编译器信息最新动态推荐关注hellogcc公众号 本周更新 2022-03-16 第141期
看不懂说的啥
讨论了ABI带来的兼容问题
第五版优化用上了arm的sse指令重写
学习一下
join_view
using namespace std::ranges;
auto l_as_string = []<typename R>(R range){
return std::string(std::begin(range), std::end(range));
};
std::vector<std::string> words{"this", "is", "a", "demo"};
auto text = l_as_string(words | views::join_with(' '));
std::cout << text << '\n'; // "this is a demo"
zip_view
先看个zip
std::array<int, 4> n{ 1, 2, 3, 4 };
std::vector<std::string> w{ "one","two","three" };
auto z1 = views::zip(n, w) // { (1, "one"), (2, "two"), (3, "three") }
for(auto t : z1)
std::cout << std::get<0>(t) << '-'
<< std::get<1>(t) << '\n';
zip_view
auto l_concat = [](int n, std::string const& s) {
return std::to_string(n) + "-" + s;
};
auto z2 = views::zip_transform(l_concat, n, w); // {"1-one", "2-two", "3-three"}
for (auto e : z2)
std::cout << e << '\n';
- overload 167
这是个期刊,每期都会录入几篇文章,文章很长。内容标题是
- What are you optimizing for? 没啥说的
- Revisiting Data-Oriented Design
- An Associative Container for Non-bash Shell Scripts
- C++20 Benefits: Consistency With Ranges
没啥值得说的
讲llvm给wasm减少体积
开发simulater遇到的问题 代码在这里
讲作者怎么发现的这个缺陷以及复现过程,做安全的朋友可以看看。简单来说就是数组边界没检查,但触发这个场景构造了挺多东西
尽量用static constexpr,编译期。快。有人用压测挑战了up主,说static constexpr并不比constexpr快,并给了一个bench链接,这个视频是作者的调试过程。简单来说,那个bench场景有问题,数据小,数据局部性太高,constexpr默认是栈变量,cache友好的结果,实际上数据量一大 static constexpr明显优于constexpr
对clang感兴趣的可以看看
讲所有权的。感兴趣的可以看看
嵌入式场景编译器优化减小程序体积
体积影响分发。从二进制角度观测/评估哪里可以省掉,用bloaty查
比如strip 减少内联 (__attribute__((noinline))
)/模板实例化以及二进制工具修改
编译选项,-Os -flto -Wl,--strip-all (不要-g) -fno-unroll-loops -fno-exception -fno-rtti
以及编译器本身提供的减少体积的选项,比如thin-lto(llvm) -fmerge-all-constant -mllvm hot-cold-split
代码组织上,不要继承不要类不要lambda,不要复制,实现移出头文件,数据结构简单就好,算法用简单的,不需要考虑性能问题,够用,拷贝尽量用memcpy
还有一些邪魔外道我没有列出。后面直接贴出ppt链接,有兴趣的可以点视频看看
谁用vscode调代码啊,你用吗,我不用。
如果一个类只声明不实现,不能保证成员函数是noexpect(true)的(析构函数除外),之前咱们也聊过zero cost exception相关 这个视频讨论了noexcept的方方面面。比较深入。值得一看。
实现variant/访问需要注意一些问题。AA手把手带你写代码
介绍gdb新特性,新命令,和python更好的交互等等。没细看
VS的静态检测工具,分析分支,跟踪指针生命周期
讲哲学的,太抽象了。没看
msvc的chrono实现。如何支持date timezone等等,API走读(评论区评论非常多。难道是妹子解说就人多吗)
讲range view的。对相关概念感兴趣的可以看看
手把手教你解bug
介绍boostext.ut 这个库用用户自定义前缀 UDL来实现单测的模型,而不是用宏展开。比较优雅。之前也介绍过
讲哲学的我是真听不进去
介绍SEH的
手把手带你看汇编。这个视频好像推了好几次了。真的值得一看
- asteria 一个脚本语言,可嵌入,长期找人,希望胖友们帮帮忙,也可以加群753302367和作者对线