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