
Hi! I am developing an application with very intensive boost::filesystem::path usage. At certain moment application start to be slowly and I start profiler. Profiler shows me that std::map<fs:path, ....> is painfully slow due path::operator <() that do lexicographical compare , that do void iterator_helper<Path>::do_increment( iterator & itr ) that is really slow. So I have replaced std::map on boost::unordered_map.. and didn't get expected performance gain. Profiles show me that path::operator <() hit count 200000 and now only 100000. That tooooo much. Further investigation shows that problem was path::operator ==() used in unordered_map. I understand that operator == can be implemented using strict weak ordering concept, but for filesystem::path. Why not implement it as: bool path::operator == (const path& lhs, const path& rhs) const { return lhs.string() == rhs.string(); } ?