C++20 STL Features: 1 Year of Development on GitHub
0 - September 15, 2020 1 C++20 STL Features: 1 Year of Development on GitHub Stephan T. Lavavej "Steh-fin Lah-wah-wade" Principal Software Engineer, Visual C++ Libraries stl@microsoft.com @StephanTLavavej2 Write down the slide numbers • Part 0: Overview • What's happened in the last year • Part 1: C++20 STL Features • Everything here is Standard, except as noted • Part 2: GitHub Development • For contributors CppCon 2020 • Announced at CppCon 2019 • github.com/microsoft/STL • Apache License v2.0 with LLVM Exception • Implemented ~50 C++20 features • Majority from our amazing contributors • Extensively reviewed0 码力 | 45 页 | 702.09 KB | 5 月前3C++20's
12 C++20’sCalendars and Time Zones in MSVC Miya Natsuhara ("MEE-yuh Not-soo-HAR-uh") Miya.Natsuhara@microsoft.com Software Engineer, Visual C++ LibrariesWelcome to CppCon 2021! Join VI: Conclusion7 Part I: Development Process8 Development Process • Implemented in our microsoft/STL open-source GitHub repo with the help of our amazing contributors! • In particular, thanks to Stephanson, and Daniel Marshall • A GitHub project tracking the issues, PRs, discussions, etc. related to C++20 chrono: Extensions to (github.com) • Feature branch (feature/chrono) for rapid development 0 码力 | 55 页 | 8.67 MB | 5 月前3C++20: An (Almost) Complete Overview
C++20: An (Almost) Complete Overview September 15th 2020 Marc Grégoire Software Architect marc.gregoire@nikon.com2 Marc Grégoire Belgium Software architect for Nikon Metrology Microsoft Edition (C++20) coming later this year Co-author of C++ Standard Library Quick Reference& C++17 Standard Library Quick Reference Founder of the Belgian C++ Users Group (BeCPP)3 C++20 C++20 is big big! Lots of new features! On Friday September 4, 2020, the C++20 standard passed ISO voting, expected to be formally published by the end of 2020.4 Agenda Modules Ranges Coroutines Concepts0 码力 | 85 页 | 512.18 KB | 5 月前3C++23: An Overview of Almost All New and Updated Features
std::byteswap() std::to_underlying() Associative Containers Heterogeneous Erasure Removed Features Garbage Collection SupportC++23 Core Language6 Agenda C++23 Core Language Explicit Object std::byteswap() std::to_underlying() Associative Containers Heterogeneous Erasure Removed Features Garbage Collection Support7 Explicit Object Parameters Instead of implicit this, explicitly std::byteswap() std::to_underlying() Associative Containers Heterogeneous Erasure Removed Features Garbage Collection Support13 if consteval Syntax: if consteval { /* A */ } else { /* B */0 码力 | 105 页 | 759.96 KB | 5 月前3C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector
C++ STL 容器全解之 vector by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course C++ 标准库五大件:容器( container ) C++ 标准库五大件:迭代器( iterator iterator ) C++ 标准库五大件:算法( algorithm ) C++ 标准库五大件:仿函数( functor ) C++ 标准库五大件:分配器( allocator ) 侯捷 STL 侯捷 STL vector 容器 vector 容器:构造函数 • vector 的功能是长度可变的数组,他里面的数据 存储在堆上。 • vector 是一个模板类,第一个模板参数是数组里 元素的类型。 对应到 链表的 curr = curr->next 上。 • 这样一个用起来就像普通的指针,但内部却通 过运算符重载适配不同容器的特殊类,就是迭 代器 (iterator) ,迭代器是 STL 中容器和算法 之间的桥梁。 迭代器模式:首迭代器+尾迭代器 • 如果让小彭老师来写 list 容器和他的迭代器,他的 内部具体实现可能是这样的。 • 迭代器的这些运算符,都是约定俗成的,其根本目0 码力 | 90 页 | 4.93 MB | 1 年前3whats new in visual studio
CppCon 2021 CppCon 2021 What’s New In ‘ Visual Studio 64-bit IDE, C++20, WSL2, and More Marian Luparu (he/him) @mluparu Sy Brand (they/them) @TartanLlama C++ Product Team, Microsoft @VisualC https://aka Studio 2019 version 16.11, C++20 is now feature complete • All features under /std:c++20 switch are production ready including modules, coroutines, concepts • C++20 features awaiting DR resolution are for now under /std:c++latest Visit https://aka.ms/cpp/20 for more details Developer inner-loop C++20 in Visual Studio Build Debug Edit Code Navigation ☑️� Linters ☑️� Colorization & Formatting0 码力 | 42 页 | 19.02 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理
- 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 1.课程安排与开发环境搭建: cmake 与 git 入门 2.现代 C++ 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: 官方文档 ](https://git-scm.com/doc) - [GitHub 官方文档 ](https://docs.github.com/en) 古代: C 语言 近代: C++98 引入 STL 容器库 近现代: C++11 引入了 {} 初始化表达式 近现代: C++11 引入了 range-based for-loop 如果想使用 for_each 这个算法模板呢? 我知道可以用 C++17 引入常用数值算法 未来: C++20 引入区间( ranges ) https://zhuanlan.zhihu.com/p/350068132 未来: C++20 引入模块( module ) https://zhuanlan.zhihu.com/p/350136757 未来: C++20 允许函数参数为自动推断( auto ) 未来: C++20 引入协程( coroutine0 码力 | 96 页 | 16.28 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
的爱恨纠葛 ( 本期 ) 4. 万能的 map 容器全家桶及其妙用举例 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 ASCII 码 第 1 章 古代 C 语言的 sprintf 2. 古代 C++ 的 stringstream 3. C++20 新增的 std::format 4. 第三方库提供的 fmt::format ( https://github.com/fmtlib/fmt ) 5. 参考小彭老师在 zeno 里手撸的两个函数(能支持任意 STL 容器的打印) : • https://github.com/zenustech/z string 也有一个成员函数 compare ,他也是返回 -1 、 1 、 0 表示大小关系。此外, C++20 中引入了 <=> 这个万能比较运 算符,意在取代 compare 成为标准,不过这个更加强类型一点。 • 总之, a == b 和 !a.compare(b) 等价。 C++20 新增: starts_with 和 ends_with • s.starts_with(str) 等价于0 码力 | 162 页 | 40.20 MB | 1 年前3Working with Asynchrony Generically: A Tour of C++ Executors
An extended example3 GOALS FOR THE EXECUTORS PROPOSAL The vision: “An asynchronous analog of the STL” • A full suite of standard async algorithms based on real-world requirements: E.g., then, when_all generic async algorithms: • E.g., then, when_all, sync_wait, let_* • Utilities for integration with C++20 coroutines5 Example 1: Launching concurrent work6 EXAMPLE: LAUNCHING CONCURRENT WORK namespace com/facebookexperimental/libunifex54 SUMMARY FROM PART 1 1. Vision: “An asynchronous analogue of the STL” 2. Some simple examples, intro to senders 3. The lifecycle of an async operation with sender/receiver0 码力 | 121 页 | 7.73 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
- 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 1.课程安排与开发环境搭建: cmake 与 git 入门 2.现代 C++ 入门:常用 STL 容器, RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: GLSL 语法的数学矢量 / 矩阵库(附带一些常用函数,随机数生成等) 4. Tencent/rapidjson - 单纯的 JSON 库,甚至没依赖 STL (可定制性高,工程美学经典) 5. ericniebler/range-v3 - C++20 ranges 库就是受到他启发(完全是头文件组成) 6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY fmtlib/fmt - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges 库就是受到他启发 4. g-truc/glm - 模仿 GLSL 语法的数学矢量 / 矩阵库 5. abseil/abseil-cpp - 旨在补充标准库没有的常用功能 6.0 码力 | 32 页 | 11.40 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4