-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P2502R2 <generator>
: Synchronous Coroutine Generator For Ranges
#4953
P2502R2 <generator>
: Synchronous Coroutine Generator For Ranges
#4953
Conversation
Merge `main` to `feature/generator`
Resolved conflict in yvals_core.h, removing all guards around `__cpp_lib_generator` except `_HAS_CXX23`. * `__cpp_lib_concepts` is now always available in C++20 and later. * `<generator>` doesn't care about `std::byte` now. * C1XX, Clang, and EDG all define `__cpp_impl_coroutine` in C++20 and later, which wasn't the case earlier.
Also add a missing semicolon - this emits a `_Pragma`.
VSO-1951821 "EDG instantiates the wrong overload of `promise_type::operator new` for `generator` machinery"
Merge `main` to `feature/generator`
Merge `main` to `feature/generator`
Merge `main` to `feature/generator`
Co-authored-by: Stephan T. Lavavej <[email protected]>
Resolved a trivial merge conflict in `<ranges>` with the `inline constexpr` change for `_Compile_time_max_size`.
Merge `main` to `feature/generator`
Co-authored-by: Casey Carter <[email protected]>
Merge `main` to `feature/generator`
Co-authored-by: Stephan T. Lavavej <[email protected]> Co-authored-by: Alex Guteniev <[email protected]>
This comment was marked as resolved.
This comment was marked as resolved.
* `const`-ify members of awaitable objects that can be `const`. * Annotate that the iterator's `operator*` has a `/* strengthened */` _noexcept-specifier_.
This comment was marked as resolved.
This comment was marked as resolved.
Several minor nits, and I burned away all the unnecessary parts of "mutable rvalue reference type". Don't know where I was heading with it, but it never made it there.
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
I had to push an additional commit to work around VSO-2254804 "EDG ICE in |
I suspect this is related to the confusion about coroutines and x86 MSABI discussed in LLVM-59382. |
⚡ 🚀 😻Thank you @CaseyCarter, @AlexGuteniev, @cpplearner, @frederick-vs-ja, and @JMazurkiewicz for working together to land this major C++23 feature! |
This is the 44 commits from
feature/generator
plus one more to add aforward
in atest_one
overload inP2502R2_generator
.I've verified that we implement the resolutions of the three LWG issues mentioned in #2936, and recently validated that we address all the "add a new header requirements".
Closes #2936, fixes #4952 (comment).
I stuffed all the implementation details in
<generator>
intonamespace _Gen_detail
, and simplified names that no longer need disambiguation. The delta looks huge, but the largest commit (b61b7ba) is mostly just additional indentation, and the remainder are a single rename each.