Opened 4 years ago
Closed 4 years ago
#1039 closed ожидается проверка (задача сдана)
WW #18
Reported by: | Карнаухов Кирилл | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_format | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (9)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Owner: | changed from Egor Suvorov to Карнаухов Кирилл |
---|
comment:3 Changed 4 years ago by
Owner: | changed from Карнаухов Кирилл to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:4 Changed 4 years ago by
Owner: | changed from Egor Suvorov to Карнаухов Кирилл |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Бегло посмотрел код:
- Скобочки вокруг тернарного не нужны
- В целочисленных какой-то странный
if
: конструкция видаif (a) { b; } else assert(false);
должна переписываться безif
+ 5; //5 -- sign and error (because of multiplying by log10)
— плохое пояснение. Всё ещё неясно, откуда именно берётся ошибка и при чём тут умножение наlog10
.- В варианте для вектора сейчас есть много-много перевыделений памяти в конструкторе. Это нехорошо, вся идея
FormatHelper
в том, чтобы лишний раз не перевыделять строчку, а сначала посчитать размер буфера, потом всё сделать. Я скорее предполагал, что создаётсяvector<FormatHelper>
.
comment:5 Changed 4 years ago by
И, да, вместо проверки наличия деструктора (хоть и прикольно) я бы скорее добавил статическую константу IsInstantiated
. Но тут на вкус и цвет — читаться, конечно, будет проще, зато можно её случайно забыть.
Наверное, лучше всего оставить как у вас и добавить псевдоним "можно ли отформатировать тип T
" для була, чтобы было пояснение "чего это может деструктора не быть".
comment:6 Changed 4 years ago by
Owner: | changed from Карнаухов Кирилл to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:7 Changed 4 years ago by
Owner: | changed from Egor Suvorov to Карнаухов Кирилл |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность 7/7.
Стиль 2.5/3:
- Неконсистентный пробел вокруг
&
: где-тоconst auto &x
, где-тоconst auto& x
. - Комментарий стоит отформатировать так:
// Special symbols: '{', '}', and ', ' for each element.
- Аналогично следует добавить пробел в комментарии рядом с
MAX_SIZE
- Аналогично следует добавить пробел в комментарии рядом с
LIMIT_SIZE
-->DEFAULT_ESTIMATED_SIZE
.- Не хватает
noexcept
в нескольких местах.
comment:8 Changed 4 years ago by
Owner: | changed from Карнаухов Кирилл to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:9 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Почти ура:
special symbols
-->Special symbols
Думаю, справитесь поправить :) 10/10.
Note: See
TracTickets for help on using
tickets.
Корректность 3.5/7:
math.h
иstd::log10
одновременно — тут надо определиться, в каком пространстве имён хотитеlog10
:bad_alloc
на каких-то крайних случаях с числами. Ой не надо делать-
от всего подряд в обобщённом коде. Да иlog10
откровенно не внушает доверия.MAX_SIZE = 25
? Разные компиляторы поддерживают разные размеры целых чисел. Хотя быassert
поставили для приличия.Стиль 1.5/3:
to_chars
успешно.back_insert_iterator
тут категорически не нужен. Хватит+=
, будет проще и читаемее. А вFormatHelper<bool>
можно даже с тернарным оператором.string_view
, может пригодиться.FormatHelper<T>
для.format()
misleading название константыMAX_SIZE
. Это ни разу неMAX
.FormatHelper<T>().estimate_size()
. Подсказка: вы полностью контроллируете, что лежит внутри всех случаевFormatHelper
.//special symbols
— лучше явно перечислить, что за символы и пояснить, откуда взялась формула.FormatHelper
заранее.Дополнительно по вашим тестам, на баллы не влияет:
is_formattable
объявлена в разных единицах трансляции.