Opened 4 years ago
Closed 4 years ago
#900 closed ожидаются исправления (задача сдана)
ww #13
Reported by: | Vavilov Mark | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW_array | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 4 years ago by
Component: | HW #1 (BMP) → WW_array |
---|
comment:2 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Vavilov Mark |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:3 Changed 4 years ago by
Owner: | changed from Vavilov Mark to Дмитрий Свиридкин |
---|---|
Version: | 1.0 → 2.0 |
comment:4 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Vavilov Mark |
---|
lab_13: /home/dmis/DATA/WORKSPACE/cpp-labs/lab_13/check/lab_13/src/main.cpp:29: void test_sizeof() [with T = bool]: Assertion `sizeof(my_array<bool, 60) == 8' failed.
fill для bool эффективно реализуется через memset
оператор присваивания теперь делает что-то еще более странное. Вы его точно тестировали? там всего 8 позиций по два варианта в каждую записать.
comment:5 Changed 4 years ago by
Owner: | changed from Vavilov Mark to Дмитрий Свиридкин |
---|---|
Version: | 2.0 → 3.0 |
comment:6 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
хорошая попытка, но
bool operator[](std::size_t index) const noexcept { return data_[index / sizeof(bool_container_t)] & (1 << index % 8); }
это не работает и приводит к UB.
Вы index на 1 поделили вместо 8.
std::memset(data_, c, sizeof *this);
Эко вы лихо! sizeof(*this) может быть больше размера массива (из-за padding), а это вообще-то UB.
7
Note: See
TracTickets for help on using
tickets.
зачем вам smoke_case.cpp, если main.cpp содержит ровно то же самое?
статический массив не может быть пустым.
оператор присваивания через proxy имеет странную сигнатуру и делает что-то странное.
магическая константа 8.
проверьте a[i] = a[j];
содержимое proxy не должно быть доступно извне.