C++ 比较引用包装器的地址
如何根据两个C++ 比较引用包装器的地址,c++,c++11,reference-wrapper,C++,C++11,Reference Wrapper,如何根据两个std::reference\u wrappers的引用进行比较?我想看看两个std::reference_wrappers的引用是否相等 编辑:对不起,我有点困惑。我的意思是如何获取引用对象的地址并进行比较。成员函数get()返回引用元素的引用。然后可以直接获取引用对象的地址 std::addressof(r1.get()) == std::addressof(r2.get()) 成员函数将返回它所持有的引用。然后,可以将两个参照对象与以下对象进行比较: const auto&a
std::reference\u wrapper
s的引用进行比较?我想看看两个std::reference_wrapper
s的引用是否相等
编辑:对不起,我有点困惑。我的意思是如何获取引用对象的地址并进行比较。成员函数get()
返回引用元素的引用。然后可以直接获取引用对象的地址
std::addressof(r1.get()) == std::addressof(r2.get())
成员函数将返回它所持有的引用。然后,可以将两个参照对象与以下对象进行比较:
const auto& a = ref_a.get();
const auto& b = ref_b.get();
if (a == b) {
// …
}
当然,上面将对两个对象(如果类型是类类型)调用
操作符==
。r1.get()==r2.get()
是否要比较引用包装器所引用对象的地址(如标题所示),或者比较对象本身是否相等(如问题主体所示)?什么?没有。推荐人没有地址。这里是裁判的地址,我甚至不确定这是否是OP想要的。@LightnessRacesinOrbit对不起,我的措辞很糟糕。我很确定OP想比较地址,因为问题的标题。@LightnessRacesinOrbit我想帮助其中一个他显然不听,否则他仍然不会发布RTFM帮助台问题。