Shi*_*bli 5 c++ c++11 reference-wrapper
如何std::reference_wrapper通过他们持有的参考来比较两个?我想看看两个std::reference_wrappers 的引用是否相等.
编辑:对不起,混乱.我的意思是如何获取所指对象的地址并进行比较.
Bri*_*ian 10
所述get()成员函数返回到元素的引用表示.然后,您可以直接获取所指对象的地址.
std::addressof(r1.get()) == std::addressof(r2.get())
Run Code Online (Sandbox Code Playgroud)
成员函数std::reference_wrapper::get将返回它持有的引用。然后,您可以将两个引用的对象与:
const auto& a = ref_a.get();
const auto& b = ref_b.get();
if (a == b) {
// …
}
Run Code Online (Sandbox Code Playgroud)
上面当然会调用operator==两个对象(如果类型是类类型)。