Skip to content

Conversation

@AlexGuteniev
Copy link
Contributor

@AlexGuteniev AlexGuteniev commented Nov 29, 2025

Towards #5504.
Follow up on #5808.

📦 Newly unwrapped cases

  • move_only_function<R(Args...) cv1-ref1-noex1>(move_only_function<R(Args...) cv2-ref2-noex2>(callable)); where noexcept and const may be present in only inner, and & or && may be present in only outer
  • move_only_function<R(Args...) cv-ref>(function<R(Args...)>(callable)) where cv-ref can have const, &, and &&.

In the tests make sure the type system is not broken, and the cases which are not supposed to compile, still do not compile.

🐿️ Squirrelly case

Inner noexcept, outer non-noexcept case is squirrelly.

To make sure we adhere to Strict Aliasing rule, I've made _Function_base not dependent on whether we have noexcept signature or not. so that noexcept base can be wrapped in non-noexcept base safely.

@StephanTLavavej StephanTLavavej added enhancement Something can be improved performance Must go faster and removed enhancement Something can be improved labels Nov 29, 2025
@AlexGuteniev AlexGuteniev marked this pull request as draft December 1, 2025 14:33
@AlexGuteniev AlexGuteniev marked this pull request as ready for review December 1, 2025 18:39
@StephanTLavavej StephanTLavavej moved this from Initial Review to Ready To Merge in STL Code Reviews Jan 17, 2026
@StephanTLavavej StephanTLavavej moved this from Ready To Merge to Merging in STL Code Reviews Jan 20, 2026
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej StephanTLavavej merged commit f74acb0 into microsoft:main Jan 20, 2026
45 checks passed
@github-project-automation github-project-automation bot moved this from Merging to Done in STL Code Reviews Jan 20, 2026
@StephanTLavavej
Copy link
Member

📦 🎁 💝

@AlexGuteniev AlexGuteniev deleted the abominable branch January 21, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance Must go faster

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants