C++ 中文周刊 第37期

reddit/hackernews/lobsters摘抄一些c++动态

每周更新

周刊项目地址在线地址知乎专栏 腾讯云+社区

欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue


资讯

编译器信息最新动态推荐关注hellogcc公众号

OSDT Weekly 2021-11-10 第123期

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++实现私货了属于

视频

又是这种抽象的东西

回忆一波cppcon2020

介绍各种tratis以及实现以及使用,算是back to basics的一部分

这个值得一看,是<深入c++对象模型>这本书的内容+[[no_unique_address]]介绍

讲函数调用结合作用域的问题

更好的使用libfuzzer,作者写了个库,很好用,仓库地址在这里

这里说一下 fuzzer,AFL不是很好用,libfuzzer比较基础,面向API级别的。但是接口很简单。这个库主要是补充一些数据生成相关的东西

项目


本文永久链接

看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持! 觉得写的不错那就给点吧, 在线乞讨 微信转账