Opened 3 years ago

Closed 3 years ago

#553 closed ожидается проверка (задача сдана)

WW_vector Garaev Timur lab_11

Reported by: Garaev Timur Owned by: Антон Филатов
Component: WW_vector Version: 2.0
Keywords: Cc:

Description

Я как будто познал магию! Интересно, до конца ли?

Change History (5)

comment:1 Changed 3 years ago by Garaev Timur

Component: HW #1 (BMP)WW_vector

comment:2 Changed 3 years ago by Garaev Timur

Type: ожидаются исправленияожидается проверка

comment:3 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

из-за того, что ваш оператор [] не константный, не компилируется тест
const T& elem = vec[0];

вот это место не компилится

bool containers::my_vector<T>::empty() const {
    return size == 0;
}

И для Product не компилится resize:

include/my_vector_impl.h:129:35: error: cannot convert ‘Product’ to ‘char’ in assignment
             array_[i * sizeof(T)] = T();
make: *** [obj/main.o] Error 1

Выпилил, как мог, особенно не вникая, может, что-то неправильно сделал.
Почти на всех тестах ругается валгринд
Кроме того, падает тест на копирование - что-то копируется не так. Сценарий примерно такой:
Взять вектор их 10 элементов, заполнить их чем-то ненулевым.
понаделать с него кучу разных копий , удалить их, а потом проверить, осталось ли состояние вектора теким, как мы его создали. У вас не осталось.

Падают тесты на resize и reserve
после сужения и увеличения размеров ассерты на capacity падают

Стиль:

  • в оператор = просится своп-трик
  • кажется, что ((T*)(array_ + size_ * sizeof(T)))->~T(); можно вынести в отдельную функцию. Да и вообще удаление всего массива просится через pop_back

Пока 4/10

comment:4 Changed 3 years ago by Garaev Timur

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Вроде поправил все, переписал тесты, чтобы они побольше проверяли и потестил валгринд. Должно быть получше!

comment:5 Changed 3 years ago by Антон Филатов

Resolution: задача сдана
Status: assignedclosed

Всё ещё падает тест на копирование. А также зависает в каком-то бесконечном цикле тест на resize (хотя может, там не бесконечный цикл, а просто какое-то UB)

По стилю замечания остались теми же.
7,5/10

Note: See TracTickets for help on using tickets.