C++23: An Overview of Almost All New and Updated Features
basic_string::resize_and_overwrite() Monadic Operations for std::optional Stacktrace Library Changes to Ranges Library Changes to Views Library std::expected std::move_only_function<> std::spanstream basic_string::resize_and_overwrite() Monadic Operations for std::optional Stacktrace Library Changes to Ranges Library Changes to Views Library std::expected std::move_only_function<> std::spanstream basic_string::resize_and_overwrite() Monadic Operations for std::optional Stacktrace Library Changes to Ranges Library Changes to Views Library std::expected std::move_only_function<> std::spanstream0 码力 | 105 页 | 759.96 KB | 5 月前3C++20: An (Almost) Complete Overview
passed ISO voting, expected to be formally published by the end of 2020.4 Agenda Modules Ranges Coroutines Concepts Lambda Expression Changes [=, this] as Lambda Capture Templated September 18 • 12:00Ranges11 Ranges What’s a range? An object referring to a sequence/range of elements Similar to a begin/end iterator pair, but does not replace them Why ranges? Provide nicer sort(begin(data), end(data)); ranges::sort(data); Eliminate mismatching begin/end iterators Allows “range adaptors” to lazily transform/filter underlying sequences of elements12 Ranges Based on following0 码力 | 85 页 | 512.18 KB | 5 月前3C++20 STL Features: 1 Year of Development on GitHub
static constexpr array skipped_extensions{".dll"sv, ".exe"sv, ".obj"sv}; static_assert(ranges::is_sorted(skipped_extensions)); for (const auto& ent : filesystem::recursive_directory_iterator{" rator{"."}) { const string extension = ent.path().extension().string(); if (ranges::binary_search(skipped_extensions, extension)) { continue; } // ... argument • This constructor is powered by C++20 ranges! • Specifically ranges::contiguous_range (and more) • Extensible to user-defined contiguous ranges25 And More!26 So Many New Features, Including:0 码力 | 45 页 | 702.09 KB | 5 月前3Working with Asynchrony Generically: A Tour of C++ Executors
Structured concurrency Cancellation support in sender/receiver Extended example: Sender/receiver and ranges52 ADDITIONAL RESOURCES P2300R2: “std::execution”: https://wg21.link/P2300R2 Libunifex: https://github processInput() ), userInterrupt() );79 AN EXTENDED EXAMPLE: SENDERS, COROUTINES, AND RANGES, OH MY!But first, a sad story about a boy and ☹ the greatest keyboard ever made….82 The mission: to imagine one might want to apply a range adaptor to the results of the senders. Asynchronous ranges beg asynchronous range adaptors.102 Step 3: Model Ctrl-C as a sender103 struct ctrl_c_handler0 码力 | 121 页 | 7.73 MB | 5 月前3whats new in visual studio
MSVC Miya Natsuhara – `Online _4 Tue, Oct 26 – 10:30am Documentation in The Era of Concepts and Ranges Sy Brand, Christopher Di Bella – `Online _3 Mon, Oct 25 – 3:15pm Implementing C++ Modules: Lessons Community 🏆 Top suggestion tickets implemented • C++ IntelliSense Support for C++20 Concepts and Ranges libraries • Build a subset of CMake targets with CMakePresets.json • Leverage IntelliSense in CMake Abandoned – Cameron DaCamara & Gabriel Dos Reis Tuesday 26th • Documentation in The Era of Concepts and Ranges – Sy Brand & Christopher Di Bella (Google) • Static Analysis and Program Safety in C++: Making0 码力 | 42 页 | 19.02 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
矩阵库(附带一些常用函数,随机数生成等) 4. Tencent/rapidjson - 单纯的 JSON 库,甚至没依赖 STL (可定制性高,工程美学经典) 5. ericniebler/range-v3 - C++20 ranges 库就是受到他启发(完全是头文件组成) 6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY ) 7. gabime/spdlog - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges 库就是受到他启发 4. g-truc/glm - 模仿 GLSL 语法的数学矢量 / 矩阵库 5. abseil/abseil-cpp - 旨在补充标准库没有的常用功能 6. bombela/backward-cpp0 码力 | 32 页 | 11.40 MB | 1 年前3Finding Bugs using Path-Sensitive Static Analysis
– Cameron DaCamara & Gabriel Dos Reis Tuesday 26th • Documentation in The Era of Concepts and Ranges – Sy Brand & Christopher Di Bella (Google) • Static Analysis and Program Safety in C+ +: Making0 码力 | 35 页 | 14.13 MB | 5 月前3C++20's
– Cameron DaCamara & Gabriel Dos Reis Tuesday 26th • Documentation in The Era of Concepts and Ranges – Sy Brand & Christopher Di Bella (Google) • Static Analysis and Program Safety in C+ +: Making0 码力 | 55 页 | 8.67 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理
当代: C++17 CTAD / compile-time argument deduction / 编 译期参数推断 当代: C++17 引入常用数值算法 未来: C++20 引入区间( ranges ) https://zhuanlan.zhihu.com/p/350068132 未来: C++20 引入模块( module ) https://zhuanlan.zhihu.com/p/3501367570 码力 | 96 页 | 16.28 MB | 1 年前3
共 9 条
- 1