http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59048
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- The only major difference I see is that in the operator== case you make a call to a PIC function in libstdc++.so, whereas strcmp can be inlined. There's no temporary created though.