unique_ptr and vector
От: Cruser Украина  
Дата: 17.11.15 16:26
Оценка: -1
Есть структура с unique_ptr.

struct S
{
    S() = default;
    S(const S&) = delete;
    S(S&& src) :
        p(std::move(src.p))
    {
    }

    std::unique_ptr<int>   p;
}


есть вектор типа

std::vector<S> v;


код
for(auto p = v.begin(); p!= v.end(); ++p) {...}


компилиться, а код:

for(auto p : v)


не компилиться — ему надо копи конструктор:

error: use of deleted function ‘S::S(const S&)


можно ли его как-то реализовать? Может сделать так:

S::S(const S& src) { p.reset(src.p) }


?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.