Strange optimization results
Jonathan Wakely
jwakely.gcc@gmail.com
Mon Apr 11 09:49:00 GMT 2011
The difference in performance may be caused by this overload of
operator== for std::string
template<typename _CharT>
inline
typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type
operator==(const basic_string<_CharT>& __lhs,
const basic_string<_CharT>& __rhs)
{ return (__lhs.size() == __rhs.size()
&& !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(),
__lhs.size())); }
If that's not declared then the default operator== simply calls
string::compare and should have similar performance at all
optimization levels.
More information about the Gcc-help
mailing list