http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59296 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- reduced: struct Type { void get() const& { } void get() const&& { } }; int main() { Type{}.get(); } The ambiguity happens when both overloads are const-qualified and *this is an rvalue