Opened 4 years ago
Closed 4 years ago
#847 closed ожидаются исправления (задача сдана)
WW #12
Reported by: | savrasov.mikhail | Owned by: | savrasov.mikhail |
---|---|---|---|
Component: | WW_vector | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (2)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to savrasov.mikhail |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Note: See
TracTickets for help on using
tickets.
Подключать заголовки надо там, где вы используете их содержимое. У вас компилируется только потому, что в main my_Vector.h подключен после чего-то, подключившего malloc.h
В *_impl.h не надо подключать исходный заголовок.
чтобы не специфицировать namespace у каждого метода, лучше завернуть их определения все разом в namespace my_vector { .... }
И зачем?
void my_vector::my_vector<T>::push_back(const T &&t)
Не получится у вас тут помувать
push_back(T(std::move(nw[i])));
Зачем тут еще один вызов конструктора?Код с конструированием нового вектора, а потом переносом из него в старый повторяется трижды. Его достатончо сделать только в конструкторе копий.
Вместо переноса push_backами, сделайте swap указателей. А лучше пусть это сделает оператор или конструктор перемещения.
В reserve надо делать move.
В конструкторе
my_vector::my_vector<T>::my_vector(size_t n)
деструктор вспомогательного вектора ничего не очистит.Оператор присваивания нарушает строгую гарантию исключений.