C++ 异构查找比较器

C++ 异构查找比较器,c++,c++14,C++,C++14,我们在C++14中实现了异构查找。我想知道为什么map、set等的默认比较器没有更改为less。没有这种变化,普通C++用户完全忽略了这个特性,当寻找集合中的conchchar *时,性能损失仍然存在。我在公司的代码库中已经多次看到这种模式。就连微软也表示,这在其一个本地视频中是一个真正的性能瓶颈。我可以怀疑代码被破坏是一个问题,但我不知道对于已经在c++98/11中运行的代码来说,它是如何发生的 struct Foo { bool operator<(const Foo&) co

我们在C++14中实现了异构查找。我想知道为什么map、set等的默认比较器没有更改为less。没有这种变化,普通C++用户完全忽略了这个特性,当寻找集合中的conchchar *时,性能损失仍然存在。我在公司的代码库中已经多次看到这种模式。就连微软也表示,这在其一个本地视频中是一个真正的性能瓶颈。我可以怀疑代码被破坏是一个问题,但我不知道对于已经在c++98/11中运行的代码来说,它是如何发生的

struct Foo { bool operator<(const Foo&) const;};
struct Bar { operator Foo() const; };

std::set<Foo> s;
Bar b;
s.find(b);
struct Foo{bool运算符