【发布时间】:2009-07-08 15:52:53
【问题描述】:
很多时候我需要一组指针。每次发生这种情况时,我都会为指针类型编写一个 less 实现 - 将两个指针强制转换为 size_t 并比较结果。
我的问题是 - 在标准中是否可用?我找不到类似的东西。似乎很常见的情况......
更新:似乎即将发布的标准修复了为指针类型和 unordered_set 提供的 less 的所有问题。几年后,这个问题将没有实际意义。
与此同时,当前标准对此没有“合法”解决方案,但 size_t cast 有效。
更新更新:好吧,我会大吃一惊!不仅
std::map<void *, int, std::less<void*> > myMap;
有效,但甚至
std::map<void *, int > myMap;
也是。
这是在 gcc 3.4.1 中。我一直在做所有这些演员,而 litb 是完全正确的。甚至他引用的章节编号在当前标准中也完全相同。万岁!
【问题讨论】:
-
“同时,当前标准对此没有“合法”解决方案,但 size_t cast 有效。”
less解决方案是当前标准之一。它不是特定于 C++0x 的
标签: c++