如何通过它们所包含的引用来比较两个std::reference_wrapper
?我想看看两个std::reference_wrapper
的引用是否相等。
编辑:对不起,混乱。我的意思是如何获取所指对象的地址并进行比较。
答案 0 :(得分:9)
get()
成员函数返回对引用元素的引用。然后,您可以直接获取所指对象的地址。
std::addressof(r1.get()) == std::addressof(r2.get())
答案 1 :(得分:4)
成员函数std::reference_wrapper::get
将返回它所持有的引用。然后,您可以将两个引用的对象与:
const auto& a = ref_a.get();
const auto& b = ref_b.get();
if (a == b) {
// …
}
当然,上面将在两个对象上调用operator==
(如果类型是类类型)。