Skip to content

Latest commit

 

History

History
215 lines (123 loc) · 6.22 KB

131.md

File metadata and controls

215 lines (123 loc) · 6.22 KB
layout title
post
第131期

C++ 中文周刊 第131期

周刊项目地址

公众号

qq群 手机qq点击进入

RSS https://github.com/wanghenshui/cppweeklynews/releases.atom

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

提交 issue

感谢许琦赞助


资讯

标准委员会动态/ide/编译器信息放在这里

编译器信息最新动态推荐关注hellogcc公众号 本周更新 2023-09-06 第218期

文章

之前也介绍过很多次了

介绍poly的原理

对ASIO和coroutine 分析很深,值得一看涨涨见识

对协程讨论很深,值得一看

讲一些c++的使用。值得一看

有点意思

压测了一下几种格式化,format/format_to还是比printf之类的更快的 (还用你说?)

c++26可以硬转const *了

比如

struct Animal_View {
    const void *animal;
    std::string_view (*speak_func)(const void *animal);

    template <class Animal>
    Animal_View(const Animal &animal)
        : animal(&animal), speak_func([](const void *animal) {
              return static_cast<const Animal *>(animal)->speak();
          }) {}

    constexpr std::string_view speak() { return speak_func(animal); }
};
#include <cmath>
constexpr auto positive = std::abs(-2);
static_assert(positive == 2);

没啥说的

以前to_chars要判断接受两个返回值处理另一个,c++26加一个operator bool

类似这种

constexpr std::to_chars_result result{{}};
static_assert(result);

SIMD时间,其实可以理解成 https://github.com/simdutf/simdutf 的推销帖

图像算法的玩意,没看懂

template <auto Fn, typename ... Rng>
constexpr auto compute_range_adaptor_size(Rng&&... rng)
{
    if constexpr ((tc::has_constexpr_size<Rng> && ...))
    {
        auto constexpr value = Fn(tc::constexpr_size<Rng>()...);
        return std::integral_constant<std::size_t, value>{};
    } else
    {
        auto const value = Fn(tc::size(std::forward<Rng>(rng))...);
        return value;
    }
}

template <typename ... Rng>
struct concat_adaptor
{
    constexpr auto size() const
        requires (tc::has_size<Rng> && ...)
    {
        return std::apply([](auto const& ... base_rng) {
            return tc::compute_range_adaptor_size<[](auto const ... n) {
                return (n + ...);
            }>(base_rng...);
        }, base_rng_tuple);
    }
};

我看不懂

有人发帖说constexpr简化代码能让二进制代码更小,作者反驳

其实主要和优化有关系,和constexpr关系不是很大

这哥们写了个库 https://github.com/pfirsich/aiopp/

总结了个教程,手把手教你写task。我觉得还是值得一看的

这个应该没人不知道吧

视频

这玩意没堆栈信息

值得一看,介绍坑爹execption的方方面面

b站链接 https://www.bilibili.com/video/BV16C4y1f79m/

开源项目需要人手

  • asteria 一个脚本语言,可嵌入,长期找人,希望胖友们帮帮忙,也可以加群753302367和作者对线
  • Unilang deepin的一个通用编程语言,点子有点意思,也缺人,感兴趣的可以github讨论区或者deepin论坛看一看。这里也挂着长期推荐了
  • gcc-mcf 懂的都懂

新项目介绍/版本更新

一些封装liburing的库

https://github.com/pfirsich/aiopp/

https://github.com/cmazakas/fiona

https://github.com/CarterLi/liburing4cpp

https://github.com/pabloariasal/couring 这个还有博客 https://pabloariasal.github.io/2022/11/12/couring-1/ 介绍设计


本文永久链接

如果有疑问评论最好在上面链接到评论区里评论,这样方便搜索,微信公众号有点封闭/知乎吞评论