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
<functional>
: Deleted operator()
overloads for return types of bind
, bind_front
, and bind_back
#3775
<functional>
: Deleted operator()
overloads for return types of bind
, bind_front
, and bind_back
#3775
Conversation
Unfortunately we can't directly use the original file.
My mother was an English teacher so I feel compelled to explain 😸 - "seemingly" is the word to use here (like "apparently"). "seemly" is a completely different word (and is rarely used; usually only the antonym "unseemly" is used). 📚 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I'll validate and push changes...
tests/std/tests/GH_000952_bind_constraints/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/GH_000952_bind_constraints/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/GH_000952_bind_constraints/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
I'm speculatively mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Thanks for improving this very tricky metaprogramming! 🛠️ ⚙️ 🎉 |
The deleted overloads prevent overload resolution flowing into another unintended overload when the invocation should be (SFINAE-friendlily) ill-formed.
Since the
operator()
overloads are constrained in default template arguments now, I think it would be better to usedecltype(auto)
to specify the return types.There seems to be something wrong with modules when using traditional SFINAE, so I'm changing to use
requires
when possible.Unblock one libc++ test:std/utilities/function.objects/func.bind_front/bind_front.pass.cpp
The test seemly requires
bind_front
to be SFINAE-friendly, while the Standard uses "Mandates:"... As a result, I decided to copy some parts of that file into MSVC STL's test file.Driven-by:
_STD
-qualify the internal calling helpers.