我正在尝试使用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