Working with Asynchrony Generically: A Tour of C++ ExecutorsUnder the hood of a concurrent operation 5. Implementing a simple algorithm 6. Senders and coroutines Part 2: 1. Structured concurrency 2. Cancellation 3. An extended example3 GOALS FOR THE EXECUTORS of abstractions (aka, concepts) derived from the algorithms • Efficient interoperability with coroutines • An open and extensible way to specify where, how, and when work should happen … including some 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 ex = std::execution;0 码力 | 121 页 | 7.73 MB | 6 月前3
C++20: An (Almost) Complete Overviewvoting, expected to be formally published by the end of 2020.4 Agenda Modules Ranges Coroutines Concepts Lambda Expression Changes [=, this] as Lambda Capture Templated Lambda Expressions views::take(10) }; “C++20 Ranges in Practice” -- Tristan Brindle Thursday, September 17 • 12:00coroutines15 Coroutines What’s a coroutine? A function, with one of the following: co_await: suspends not allowed)16 Coroutines What are coroutines used for? They simplify implementing: Generators Asynchronous I/O Lazy computations Event driven applications17 Coroutines C++20 contains0 码力 | 85 页 | 512.18 KB | 6 月前3
whats new in visual studiofeature complete • All features under /std:c++20 switch are production ready including modules, coroutines, concepts • C++20 features awaiting DR resolution are available for now under /std:c++latest Visit basic_string_view • Other small features 🕙 Coming next for C++23 • STL • Standard library modules • Coroutines 💡 C++98* * with /permissive- 💡 C++11 💡 C++14 💡 C++17 💡 C++20* *awaiting DR resolution variable with std::move • Path-sensitive bounds checking • Use-after-move • Lifetime checking for coroutines Thu, Oct 28 – 4:45pm / Fri, Oct 29 – 12:00pm Finding bugs using path-sensitive static analysis0 码力 | 42 页 | 19.02 MB | 6 月前3
共 3 条
- 1













