资讯
标准委员会动态/ide/编译器信息放在这里
编译器信息最新动态推荐关注hellogcc公众号 本周更新 2023-08-02 第213期
文章
- • RocksDB 源码阅读系列[1]
写的不错
- • Understanding Ranges Views and View Adaptors Objects in C 20/C 23 [2]
#include <ranges>
#include <vector>
#include <iostream>
int main() {
std::vector<int> r = {1, 2, 3, 4, 5};
auto reversed = r | std::views::reverse;
for (auto i : reversed)
std::cout << i << " ";
// same as:
//for (auto i : r | std::views::reverse)
//std::cout << i << " ";
std::cout << 'n';
std::ranges::reverse_view rv(r);
for (auto i : rv)
std::cout << i << " ";
}
代码语言:javascript复制
探讨这玩意是怎么实现的
- • soagen: A Structure-of-Arrays generator for C [3]
帮你把结构体组成的数组这种行存转换为数组结构体模式列存
是代码帮你生成tuple。有点繁琐
- • Did you know that C 26 added user-generated static_assert messages?[4]
static_assert(false, std::string_view{"message"});
代码语言:javascript复制
既然能string_view 也就可以fmt
- • Inside STL: The pair and the compressed pair[5]
没啥说的。能省点空间
代码语言:javascript复制template<typename T1, typename T2>
struct compressed_pair {
[[no_unique_address]] T1 first;
[[no_unique_address]] T2 second;
};
代码语言:javascript复制
- • Inside STL: The string[6]
介绍string对小字符串做的优化,类似clang::string的实现分析
- • A Gentle Introduction to LLVM IR[7]
光速入门
- • MySQL · 源码剖析 · LF_HASH无锁实现[8]
亮点还是扩容不需要迁移,很有意思
- • Misinterpreting the misleadingly-named STATUS_STACK_BUFFER_OVERRUN[9]
看不懂
视频
meeting cpp推荐了十个,我把我感兴趣的列一下
Daniel Withopf - Compile-time Is the New Constexpr: Leveraging Compile-time Sparsity for Vectors and Matrices[10]
大概意思是利用constexpr算某些场景比elgen快
Filipp Gelman - What I learned From Sockets[11]
讲了一堆设计。没有代码,听个乐
开源项目需要人手
- • asteria[12] 一个脚本语言,可嵌入,长期找人,希望胖友们帮帮忙,也可以加群384042845和作者对线
- • Unilang[13] deepin的一个通用编程语言,点子有点意思,也缺人,感兴趣的可以github讨论区或者deepin论坛看一看。这里也挂着长期推荐了
- • gcc-mcf[14] 懂的都懂
新项目介绍/版本更新
- • battery-embed[15]
std::embed没有之前能对付用的替代品
- • https://tavianator.com/2023/bfs_3.0.html1
这哥们写了个find,和bfs一个原理,并发宽度优先遍历,find默认是dfs。
实际效果比find快百倍。很有意思。可以装一个玩玩
- • https://github.com/jll63/yomm2/blob/master/reference/virtual_ptr.md
一个fat pointer实现
- • https://github.com/DeveloperPaul123/thread-pool/tree/0.6.2
一个实现了work steal的线程池
关于 work steal,道理都懂,可能还需要看看https://www.youtube.com/watch?v=iLHNF7SgVN4&ab_channel=CppCon 了解下
工作招聘
有没有可以远程的工作可以推荐给我,我也快失业了
API Design
最近群里收集了一些想要讨论的点子,大家比较关注API设计,我这里把一些资料放在这里。可能后面会做个视频
https://www.youtube.com/watch?v=zL-vn_pGGgY&ab_channel=CppCon
https://www.youtube.com/watch?v=2UmDvg5xv1U&ab_channel=CppNow
https://www.acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/
本文永久链接[16]
如果有疑问评论最好在上面链接到评论区里评论,这样方便搜索,微信公众号有点封闭/知乎吞评论
引用链接
[1]
RocksDB 源码阅读系列: https://zhuanlan.zhihu.com/p/646776844
[2]
Understanding Ranges Views and View Adaptors Objects in C 20/C 23 : https://www.cppstories.com/2023/cpp20-understanding-views-impl/
[3]
soagen: A Structure-of-Arrays generator for C : https://marzer.github.io/soagen/
[4]
Did you know that C 26 added user-generated static_assert messages?: https://github.com/tip-of-the-week/cpp
[5]
Inside STL: The pair and the compressed pair: https://devblogs.microsoft.com/oldnewthing/20230801-00/?p=108509
[6]
Inside STL: The string: https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532
[7]
A Gentle Introduction to LLVM IR: https://mcyoung.xyz/2023/08/01/llvm-ir/
[8]
MySQL · 源码剖析 · LF_HASH无锁实现: https://zhuanlan.zhihu.com/p/452849776
[9]
Misinterpreting the misleadingly-named STATUS_STACK_BUFFER_OVERRUN: https://devblogs.microsoft.com/oldnewthing/20230731-00/?p=108505
[10]
Daniel Withopf - Compile-time Is the New Constexpr: Leveraging Compile-time Sparsity for Vectors and Matrices: https://www.youtube.com/watch?v=PybIAMIZrVE&ab_channel=CppNow
[11]
Filipp Gelman - What I learned From Sockets: https://www.youtube.com/watch?v=DA6AGCadH60&ab_channel=ACCUConference
[12]
asteria: https://github.com/lhmouse/asteria
[13]
Unilang: https://github.com/linuxdeepin/unilang
[14]
gcc-mcf: https://gcc-mcf.lhmouse.com/
[15]
battery-embed: https://github.com/batterycenter/embed
[16]
本文永久链接: https://wanghenshui.github.io/cppweeklynews/posts/125.html