我试图使用reference_wrappers向量做一些工作,并遇到了一些问题。我得到的是:
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
发布于 2014-01-09 02:19:09
一些简单的例子
int i = 10;
std::vector<std::reference_wrapper<int>> v;
v.push_back( std::ref( i ) );
std::cout << v[0] << std::endl;
std::cout << v[0].get() << std::endl;在你的例子中,这个建筑看起来像
vec[i].get().someMethod();我没有翻看你最新的帖子。
https://stackoverflow.com/questions/21010341
复制相似问题