Opened 4 years ago
Closed 4 years ago
#907 closed ожидается проверка (задача сдана)
WW #13
Reported by: | Gleb Marin | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_array | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
69 lab_13::my_array<int, 10> bool_array;
он все же не bool
131 throw std::out_of_range{std::to_string(index)};
было бы лучше, если бы сообщение специализации тоже было осмысленным
Note: See
TracTickets for help on using
tickets.
Не хватает инклуда:
cstdint
19 constexpr T &operator[](std::size_t index) const noexcept;
этот и аналогичные методы не компилируется. Программа собирается, потому что этот метод не участвует в компиляции. Нужно написать тест, покрывающий вызовы const-версий.
лучше сделать более user-friendly сообщение, чтобы из него можно было лучше понять, в чем именно ошибка. Из описания "3" мало что понятно.
с такой реазилацией лучше принимать const T& val, поскольку так на одну операцию меньше
assert все же стоит добавить
с rvalue-версией стоит что-нибудь явно сделать
В текущей реализации a[i] = a[i + 1] работает неправльно в bool-специализации. Напишите на это тест.
везде const noexcept
какая мотивация возвращать не bool?
noexcept
может переполниться при большом N
assert(bit_index < 8)
signed и unsigned битовые операции потенциально отличаются. Лучше работать в unsigned.
168 const std::uint8_t multiple_values = static_cast<std::uint8_t>(val ? (1LL << BITS_PER_BYTE) - 1 : 0);
long long здесь не нужен. Лучше всего просто 1u.
169 for (std::size_t i = 0; i < n_bytes; ++i)
170 {
171 _memory[i] = multiple_values;
172 }
memset потенциально эффективнее