前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >C++ 动态新闻推送 第18期

C++ 动态新闻推送 第18期

作者头像
王很水
发布2021-08-31 17:35:20
发布2021-08-31 17:35:20
29100
代码可运行
举报
运行总次数:0
代码可运行

C++ 动态新闻推送 第18期

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

每周更新

周刊项目地址 github,在线地址

discord讨论群组 |飞书讨论群组|知乎专栏

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


资讯

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

本周周报github直达

文章

由于指令重排而导致的多线程问题主要是两个,数据依赖与控制依赖,数据依赖就是可见性

控制依赖类似这段代码

代码语言:javascript
代码运行次数:0
复制
int x = a
if x > 10
   y = b
else
   z = b

引入volatile_if来解决,非常暴力

代码语言:javascript
代码运行次数:0
复制
#define barier_true() ({ barrier(); 1; })
#define volatile_if(x) if ((x) && barrier_true())

#define barrier() __asm__ __volatile__("": : :"memory")

注意using的用法

代码语言:javascript
代码运行次数:0
复制
template<class... TEvents>
struct ihandler : ihandler<TEvents>... {
  virtual ~ihandler() noexcept = default;
  using ihandler<TEvents>::on...;
};

template<class TEvent> struct ihandler<TEvent> {
  virtual ~ihandler() noexcept = default;
  virtual auto on(const TEvent&) -> bool = 0;
};

int main() {
  struct foo {};
  struct bar {};

  struct handler : ihandler<foo, bar> {
    auto on(const foo&) -> bool override { return true; }
    auto on(const bar&) -> bool override { return false; }
  };

  std::unique_ptr<ihandler<foo, bar>> h = std::make_unique<handler>();
  assert(h->on(foo{}));
  assert(not h->on(bar{}));
}

介绍inplace_merge 归并算法

最近苹果IOS系统出现一个bug,如果把wifi名字改成%p%s%s%s%s%n,苹果手机连上就会出现wifi挂掉永远连不上。这种字符串初始化是比较原始的设计里。在c++现在的代码,如何避免这种问题呢? fmt库以及std::format

介绍了使用range反转字符串的几种写法:

视频

使用恰当的值类型,避免转换造成的效率低下,另外编译器警告都开开, 用 -Wsign-conversion,别用-Wconversion

For signed <-> unsigned conversion gcc has a -Wsign-conversion flag. For some reason -Wconversion is not working there. According to gcc docs: “Warnings about conversions between signed and unsigned integers are disabled by default in C++ unless -Wsign-conversion is explicitly enabled.”

我觉得就不如直接看ppt

简单概括这些视频内容

std::find_if std::remove_if传进去 的lambda不能有状态,必须是regular的,还讲了一大堆其他的东西,大概意思是注意把函数写对之类的

介绍静态分析的原理 类型系统等等

介绍windows错误分析的,这个我不懂,就没看

介绍wasm的,没有细看

项目


看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持!

本文永久链接

代码语言:txt
复制
     This site is open source. [Improve this page](https://github.com/wanghenshui/cppweeklynews/edit/dev/posts/018.md).
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++ 动态新闻推送 第18期
    • 资讯
      • 编译器信息最新动态推荐关注hellogcc公众号
    • 文章
    • 视频
    • 项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档