2013-09-12 2 views
3

Если вектор не уникален_ptrs или если у меня нет уникального_ptr для вектора (и не разыменовывается), он работает, но с обоими результатом возникает ошибка компиляции , Я не уверен, что происходит.Итерация через unique_ptr вектора unique_ptrs

auto v = std::make_unique<std::vector<std::unique_ptr<int>>>(); 
for (auto item : *v) 
{ 

} 
+6

Почему 'unique_ptr >'? – GManNickG

ответ

19

Вы не можете копировать уникальные указатели, потому что ... ну, они уникальный.

Вы должны итерацию по ссылке:

for (auto & item : *v) 
//  ^^^ 
Смежные вопросы