-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Implement P2255R2 Type Traits To Detect References Binding To Temporaries for Clang #5537
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
Implement P2255R2 Type Traits To Detect References Binding To Temporaries for Clang #5537
Conversation
4f5e570 to
37ec87a
Compare
37ec87a to
3b8a0cb
Compare
Also drop the `__clang_major__ >= 19` guard.
We now always inspect the feature-test macro. (This will change to `_HAS_CXX23` in the future, at which point we'll elide/fuse redundant guards, as we've done many times in the past.)
tests/std/tests/P2255R2_reference_constructs_from_temporary/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/P2255R2_reference_constructs_from_temporary/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/P2255R2_tuple_pair_construction/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/P2255R2_reference_constructs_from_temporary/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
|
Thanks, this is great! 😻 I appreciate the comprehensive test coverage and extreme attention to detail in |
|
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
|
Thanks for getting us one step closer to finishing C++23! 😻 🏃 🎉 I've filed #5755 and tracking bugs for MSVC and EDG (after having already emailed them quite some time ago). I resolved #2534 following our usual convention of declaring library victory regardless of whether Clang or MSVC is first to enable library support. |
Resolves #2534. (We traditionally resolve features when they've been implemented for at least one of our first-class supported codegen compilers. #5755 tracks getting this implemented for the other one.)
Notes:
allocator_arg_tconstructors oftupleis missing. It seems to me uses-allocator construction is meaningless fortuplecontaining references. I've tried to submit an LWG issue to make theallocator_arg_tconstructors oftuple<Ts...>deleted when(is_reference_v<Ts> || ...)istrue. Edit: LWG-4267.