C 中文周刊 第105期
周刊项目地址
弄了个qq频道,手机qq点击进入
RSS https://github.com/wanghenshui/cppweeklynews/releases.atom
欢迎投稿,推荐或自荐文章/软件/资源等
资讯
标准委员会动态/ide/编译器信息放在这里
编译器信息最新动态推荐关注hellogcc公众号 本周更新 2023-03-15 第193期
线下聚会了说是
文章
- Effortless Performance Improvements in C : std::string_view
TLDR 尽可能使用string_view替代std::string,速度提升显著
- 如何扩展asio
扩展思路
- sonic-cpp
字节跳动一个json库,兼顾速度和好用,可以关注一波
- User-Defined Literals To Handle Units
介绍用户自定义字符操作符的
比如 ms,再比如
代码语言:javascript复制long double operator""_deg_to_rad(long double deg)
{
long double radians = deg * std::numbers::pi_v<long double> / 180;
return radians;
}
// ...
// value is now 90 degree in radiants -> 1.5707...
double value = 90.0_deg_to_rad;
- Combining Collections with Zip in C 23 for Efficient Data Processing
#include <format>
#include <iostream>
#include <ranges>
#include <vector>
int main() {
std::vector a { 10, 20, 30, 40, 50 };
std::vector<std::string> b { "one", "two", "three", "four" };
for (const auto& [num, name] : std::views::zip(a, b))
std::cout << std::format("{} -> {}n", num, name);
}
zip介绍的文章,c 23可用
- Iterating and inverting a const views::filter
constexpr auto isPrint = [](auto c) { return std::isprint(c); };
constexpr auto isXDigit = [](auto c) { return std::isxdigit(c); };
constexpr auto hexdigital = std::views::filter(isXDigit);
constexpr auto printable = std::views::filter(isPrint);
constexpr auto digits = std::views::iota('