In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from prog.cpp:1:
/usr/include/c++/6/bits/stl_algobase.h: In instantiation of ‘static _OI std::__copy_move<true, false, std::random_access_iterator_tag>::__copy_m(_II, _II, _OI) [with _II = const std::unique_ptr<A>*; _OI = std::unique_ptr<A>*]’:
/usr/include/c++/6/bits/stl_algobase.h:386:44: required from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = const std::unique_ptr<A>*; _OI = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_algobase.h:422:45: required from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = __gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; _OI = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >]’
/usr/include/c++/6/bits/stl_algobase.h:455:8: required from ‘_OI std::copy(_II, _II, _OI) [with _II = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _OI = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >]’
/usr/include/c++/6/bits/vector.tcc:637:16: required from ‘void std::vector<_Tp, _Alloc>::_M_range_insert(std::vector<_Tp, _Alloc>::iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_vector.h:1375:4: required from ‘void std::vector<_Tp, _Alloc>::_M_insert_dispatch(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_vector.h:1100:4: required from ‘std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::const_iterator, _InputIterator, _InputIterator) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; <template-parameter-2-2> = void; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*; std::vector<_Tp, _Alloc>::const_iterator = __gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename __gnu_cxx::__alloc_traits<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_pointer = const std::unique_ptr<A>*]’
prog.cpp:25:4: required from here
/usr/include/c++/6/bits/stl_algobase.h:343:18: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = A; _Dp = std::default_delete<A>]’
*__result = std::move(*__first);
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
from prog.cpp:2:
/usr/include/c++/6/bits/unique_ptr.h:360:19: note: declared here
unique_ptr& operator=(const unique_ptr&) = delete;
^~~~~~~~
In file included from /usr/include/c++/6/memory:64:0,
from prog.cpp:2:
/usr/include/c++/6/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, _Args&& ...) [with _T1 = std::unique_ptr<A>; _Args = {const std::unique_ptr<A, std::default_delete<A> >}]’:
/usr/include/c++/6/bits/stl_uninitialized.h:75:18: required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _ForwardIterator = std::unique_ptr<A>*; bool _TrivialValueTypes = false]’
/usr/include/c++/6/bits/stl_uninitialized.h:126:15: required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _ForwardIterator = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_uninitialized.h:281:37: required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _ForwardIterator = std::unique_ptr<A>*; _Tp = std::unique_ptr<A>]’
/usr/include/c++/6/bits/vector.tcc:643:34: required from ‘void std::vector<_Tp, _Alloc>::_M_range_insert(std::vector<_Tp, _Alloc>::iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_vector.h:1375:4: required from ‘void std::vector<_Tp, _Alloc>::_M_insert_dispatch(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*]’
/usr/include/c++/6/bits/stl_vector.h:1100:4: required from ‘std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::const_iterator, _InputIterator, _InputIterator) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > > >; <template-parameter-2-2> = void; _Tp = std::unique_ptr<A>; _Alloc = std::allocator<std::unique_ptr<A> >; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename std::_Vector_base<_Tp, _Alloc>::pointer = std::unique_ptr<A>*; std::vector<_Tp, _Alloc>::const_iterator = __gnu_cxx::__normal_iterator<const std::unique_ptr<A>*, std::vector<std::unique_ptr<A> > >; typename __gnu_cxx::__alloc_traits<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_pointer = const std::unique_ptr<A>*]’
prog.cpp:25:4: required from here
/usr/include/c++/6/bits/stl_construct.h:75:7: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = A; _Dp = std::default_delete<A>]’
{ ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
from prog.cpp:2:
/usr/include/c++/6/bits/unique_ptr.h:359:7: note: declared here
unique_ptr(const unique_ptr&) = delete;
^~~~~~~~~~