专栏首页C++ 动态新闻推送C++ 动态新闻推送 第14期

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

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

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

每周更新

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

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

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


资讯

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

本周周报github直达

文章

` MOVAPS & vmovdqa`这两条指令,支持 128 bit 的操作,同时要求 16B 地址对齐,如果违反对齐规则,就会触发 SEGV。 对于 GCC 来说,在 x86-64 下,默认 march 是 x86-64,具有最好的兼容性,其支持 SSE 指令。可以通过 gcc -Q --help=target | grep -- '-march=' 来查看 GCC 默认 march 属性。 对于 Sandy Bridge 架构,至少支持 AVXXSAVE 等指令。 所以,我们可以看到,编译选项开了 -march=sandybridge 之后,使用上了 AVX 指令。 同时,如果不开编译器优化,那么使用 mov 指令来完成 4 字节的搬迁,开启 O2 优化,会使用对应的 SSE 或者 AVX 指令来优化 mov 操作。

struct foo {
  foo() = default;
  foo(const foo&) { throw 42; }
};

int main() {
  std::variant<int, foo> v{42};
  assert(not v.valueless_by_exception());

  try {
    v = foo{}; // throws
  } catch(...) { }

  assert(v.valueless_by_exception());
}

这段代码没啥问题

std::vector<int> create_range()
{
    return {1, 2, 3, 4, 5};
}

int main()
{
    for (auto const& value : create_range())
    {
        std::cout << value << ' ';
    }
}

这段代码有问题

std::vector<int> create_range()
{
    return {1, 2, 3, 4, 5};
}

std::vector<int> const& f(std::vector<int> const& v)
{
    return v;
}

int main()
{
    for (auto const& value : f(create_range()))
    {
        std::cout << value << ' ';
    }
}

Range-for中的range是个万能引用/右值引用,f是constT& 绑定不上,所以这里是未定义行为, 解决方法,别偷懒,放到循环外面

视频

项目

  • https://github.com/cdeln/cpp_enum_set/blob/master/example/basic_tutorial.cpp 一个enum 取交集并集的裤
  • imgui版本更新 https://github.com/ocornut/imgui/releases/tag/v1.83 imgui是一个很小巧方便的GUI工具库
  • https://github.com/foonathan/memory 更好用的内存分配组件

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

本文永久链接

This site is open source. Improve this page.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++ 动态新闻推送 第35期

    怎么保证一个函数只被调用一次呢,这里有个点子,Destructive separation: move away and call Matt Godbolt a...

    王很水
  • C++ 动态新闻推送 第34期

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

    王很水
  • C++ 动态新闻推送 第33期

    很多代码场景下c++的灵活性要高于强制安全检查,且一些场景下rust生成的汇编不如c++少

    王很水
  • C++ 动态新闻推送 第32期

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

    王很水
  • C++ 动态新闻推送 第31期

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

    王很水
  • C++ 动态新闻推送 第30期

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

    王很水
  • C++ 动态新闻推送 第20期

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

    王很水
  • C++ 动态新闻推送 第15期

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

    王很水
  • C++ 动态新闻推送 第5期

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

    王很水
  • C++ 动态新闻推送 第4期

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

    王很水
  • C++ 动态新闻推送 第3期

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

    王很水
  • C++ 动态新闻推送 第2期

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

    王很水
  • C++ 动态新闻推送 第19期

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

    王很水
  • C++ 动态新闻推送 第18期

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

    王很水
  • C++ 动态新闻推送 第17期

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

    王很水
  • C++ 动态新闻推送 第13期

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

    王很水
  • C++ 动态新闻推送 第11期

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

    王很水
  • C++ 动态新闻推送 第10期

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

    王很水
  • C++ 动态新闻推送 第9期

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

    王很水

扫码关注云+社区

领取腾讯云代金券