从reddit/hackernews/lobsters摘抄一些c++动态
每周更新
周刊项目地址|在线地址 |知乎专栏 | 腾讯云+社区 |
欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue
VS 2022出了 Visual Studio 2022 now available
llvm工作的原理,值得看看,了解一下
这个回答不错,展望了一下最新进展,可以看看
文章中的点子有点意思,比如string的resize_uninitialized ,各种字符串操作的零拷贝优化,pb零拷贝优化,应用控制内存碎片等等
零拷贝优化要扣细节,不然干嘛用c++
type_identity不会丢类型信息
template <class T>
void print1() {
std::cout << typeid(T).name() << std::endl;
}
template <class T>
void print2() {
std::cout << typeid(std::type_identity<T>).name() << std::endl;
}
int main() {
print1<int const&>(); // 'int'
print2<int const&>(); // 'type_identity<int const &>'
}
总结了一些学llvm的资料
对于小对象,比如string_view int span function_ref之类的对象,传值比传引用效率高。
要知道,引用是指针语法糖,会引入指针的问题,编译器可能优化的不是那么好
介绍链接段 以及如何设定attribute限定到这些段里。这几个段是c++实现私货了属于
又是这种抽象的东西
Burkhard Stubert - Hexagonal Architecture: The Standard for Qt Embedded Applications 讲qt的,没看
Bob Steagall - Debugging Techniques 说了一大堆,还是处理编译警告 assert 二分定位之类的东西
介绍各种tratis以及实现以及使用,算是back to basics的一部分
这个值得一看,是<深入c++对象模型>这本书的内容+[[no_unique_address]]介绍
讲函数调用结合作用域的问题
更好的使用libfuzzer,作者写了个库,很好用,仓库地址在这里
这里说一下 fuzzer,AFL不是很好用,libfuzzer比较基础,面向API级别的。但是接口很简单。这个库主要是补充一些数据生成相关的东西