很多时候我需要一组指针.每次发生这种情况时,我最终都会为指针类型编写一个较少的<>实现 - 将两个指针强制转换为size_t并比较结果.
我的问题是 - 标准中是否提供?我找不到那样的东西.似乎很常见的情况......
更新:似乎即将推出的标准修复了所有问题,并为指针类型和包含的unordered_set提供了较少的<>.几年后,这个问题将毫无意义.
同时,当前标准没有"合法"的解决方案,但size_t演员工作.
更新更新:好吧,我会很惊讶!不只
std::map<void *, int, std::less<void*> > myMap;
Run Code Online (Sandbox Code Playgroud)
工作,但甚至
std::map<void *, int > myMap;
Run Code Online (Sandbox Code Playgroud)
同样.
这是在gcc 3.4.1.我一直在做所有这些演员阵容,而且litb是完全正确的.甚至他引用的章节编号在当前标准中也完全相同.欢呼!
这个问题基于我发现监控可能内存泄漏的代码,因此它包含一些您可能不希望在常规程序中看到的代码,例如排序指针。
但是,我看到设置了一个指针nullptr,然后将该指针与最大地址进行比较。是否由 C++ 标准保证nullptr总是小于其他指针operator<?