https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #7 from Robert Haberlach ---
Oh, damn. "Submit only my new comment" does not what I thought it does. :-)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #6 from Robert Haberlach ---
(In reply to TC from comment #4)
> (In reply to Eric Fiselier from comment #3)
> > Here is an example of why `_Bind::operator()(...) const` must be considered
> > during overload
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #5 from r.hl at gmx dot net ---
See also the discussion on Phabricator: https://reviews.llvm.org/D32824
I agree; AFAICS [func.bind.bind] is clear on this: the type of the Func
object used to call the member operator() is non-const.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #4 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #3 from Eric Fiselier ---
Here is an example of why `_Bind::operator()(...) const` must be considered
during overload resolution even if the call wrapper itself is not const.
--
#include
struct Func {
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #2 from Eric Fiselier ---
Note that explicitly providing a return type for the lambda avoids this compile
error. Example:
---
#include
int main() {
int i;
std::bind([] (auto& x) -> void {x = 1;}, i)(); // OK!
}
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
Eric Fiselier changed:
What|Removed |Added
CC||eric at efcs dot ca
--- Comment #1 from