我正在嘗試使用reference_wrappers的矢量做一些工作,並遇到一些問題。這是我得到的:訪問std :: vector中的元素<std :: reference_wrapper <Type>>
std::vector<std::reference_wrapper<Type>> vec;
//Some stuff...
for(int i = 0; i < vec.size(); i++)
{
if(&vec[i] == &vec)
{
return true;
}
}
這是行不通的。我對std :: reference_wrapper完全陌生,所以我想我不確定如何使用它。上面這個例子給了我一個'缺少演員'的錯誤。
我有另一個地方,我做這樣的事情:
vec[i].someMethod();
其中產量:
__gnu_cxx::__alloc_traits<std::allocator<std::reference_wrapper<Type> > >::value_type’ has no member named 'someMethod()'
我使用GCC4.8
循環試圖完成什麼? – 0x499602D2
這應該是'vec [i] .get()。someMethod();'因爲沒有向T&'的隱式轉換。 – 0x499602D2
我知道@VladfromMoscow在這裏和其他地方一樣友好。 – jready