我怎樣才能比較兩個std::reference_wrapper
他們持有的參考?我想看看兩個std::reference_wrapper
的引用是否相等。比較reference_wrappers的地址
編輯:混淆抱歉。我的意思是如何獲取指示對象的地址並進行比較。
我怎樣才能比較兩個std::reference_wrapper
他們持有的參考?我想看看兩個std::reference_wrapper
的引用是否相等。比較reference_wrappers的地址
編輯:混淆抱歉。我的意思是如何獲取指示對象的地址並進行比較。
成員函數get()
返回對所引用元素的引用。然後您可以直接獲取指示對象的地址。
std::addressof(r1.get()) == std::addressof(r2.get())
什麼?編號引用沒有地址。在這裏你得到了_referees_的地址,我甚至不確定這是OP想要的。 –
@LightnessRacesinOrbit對不起,我的部分措辭不佳。我相當確信OP因爲問題標題想比較*地址*。 – Brian
成員函數std::reference_wrapper::get
將返回它所持有的引用。然後,您可以比較兩個引用的對象:
const auto& a = ref_a.get();
const auto& b = ref_b.get();
if (a == b) {
// …
}
上面會,當然,呼籲兩個對象operator==
(如果該類型是一個類類型)。
@LightnessRacesinOrbit我覺得幫助少數人之一[實際聽取](http://stackoverflow.com/a/24049899/493122),並試圖改進他的代碼。 – Shoe
他明顯不會聽,否則他仍不會發布RTFM幫助臺問題。 –
'r1.get()== r2.get()' – 0x499602D2
您想比較'reference_wrapper'引用的對象的地址(如標題所示),或比較對象本身是否相等作爲問題的主體建議)? – Praetorian