https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97772
Bug ID: 97772 Summary: Wording of GCC's error message when calling lvalue-ref qualified member function on temporary object Product: gcc Version: 10.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: enricomaria.dean6elis at gmail dot com Target Milestone: --- Long story short, write this source file struct A { void doWork() & {} }; int main() { A{}.doWork(); } compile it with g++ -std=c++17 that_file.cpp and the error will be error: passing ‘A’ as ‘this’ argument discards qualifiers [-fpermissive] There's really no discarded qualifier; it's just that `A{}` cannot bind to the `&`-qualified overload. The full discussion is on StackOverflow at https://stackoverflow.com/q/64705932/5825294