Скопируйте аллокатор без использования операции присваивания (как это требуется для улучшения operator=() в параграфе Е.3.3)
Я не пойму что там от нас хотят видимо просто использовать конструктор копирования вызвать из operator=() ну что то вроде этого:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
template<class T, class A> vector<T,A>& vector<T,A>::operator=(const vector& a)//дает сильную гарантию { vector<T,A> temp(a); A alloc_temp=a.alloc; temp.alloc=alloc; alloc=alloc_temp; T* v_temp=a.v; temp.v=v; v=v_temp; T* last_temp=a.last; temp.last=last; last=last_temp; T* space_temp=a.space; temp.space=space; space=space_temp; } |
[youtube]https://www.youtube.com/watch?v=JF_fkY46RA0[/youtube]