【发布时间】:2020-04-23 11:09:06
【问题描述】:
Comparing pointers to unrelated objects has unspecified results.
这似乎表明该程序可能具有未定义的行为,至少因为我们不能保证键类型的严格弱排序:
#include <map>
int main()
{
int x = 0, y = 1;
bool arbitrary = false;
std::map<int*, bool> m{
{&x, arbitrary},
{&y, arbitrary}
};
}
那么,更一般地说,我们可以说带有指针键的地图是一个危险的*命题吗?或者我们可以在这里依靠一些特殊的规则?
* 从学术上讲,就是;实际上,我不知道主流实现实际上会在比较任意指针时引发地狱。
【问题讨论】:
-
@LanguageLawyer 你是对的
标签: c++ sorting pointers language-lawyer strict-weak-ordering