Opened 4 years ago
Closed 4 years ago
#1044 closed ожидается проверка (задача сдана)
WW_format
Reported by: | tarasov.denis | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_format | Version: | 3.0 |
Keywords: | Cc: |
Description
Generally, it's not a good idea to depend on experimental features. https://stackoverflow.com/a/43318673
haha std::experimental go brrrrrrrr
Change History (10)
comment:1 Changed 4 years ago by
Owner: | changed from Egor Suvorov to tarasov.denis |
---|
comment:2 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:3 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
std::experimental is no more. He was like a father to me.
comment:4 Changed 4 years ago by
Owner: | changed from tarasov.denis to Egor Suvorov |
---|
comment:5 Changed 4 years ago by
Owner: | changed from Egor Suvorov to tarasov.denis |
---|
Корректность 4.5/7:
- Есть UB при форматировании чисел на границе. И заодно неверно выдаётся
estimate_size()
.
Стиль 1.5/3:
BIGGEST_POSSIBLE_SEQUENCE_LENGTH
— абсолютно неверное название. Легко подберу вектор, который при форматировании будет длиннее.- Подсказка: вероятно, эта константа вообще имеет отношение не ко всему форматированию в целом, а только к одному конкретному случаю? Где она и должна находиться.
isValid
-->IS_VALID
- Случай для целых чисел
- Из объяснения "represented without loss" не становится понятнее. Вспомните, как вы пытались понять эту же формулировку из стандарта, пожалейте читателей, разъясните.
- И строковые комментарии лучше через
//
- Случай для
.format()
: неясно, зачем заводить поле. - Непонятный код в оценке длины для вектора. Например, почему для пустого надо добавить 2, а для непустого не надо? Чем эти случаи отличаются? Да ничем.
- Если посидеть-подумать, то можно внезапно заметить, что там есть
-1
и длины строк,
и{}
совпадают, но это неочевидно и путает. Лучше написать один общий случай, пишите код для человека. Компилятор соптимизирует.
- Если посидеть-подумать, то можно внезапно заметить, что там есть
comment:6 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:7 Changed 4 years ago by
Owner: | changed from tarasov.denis to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:8 Changed 4 years ago by
Owner: | changed from Egor Suvorov to tarasov.denis |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность 7/7.
Стиль 2.25/3:
FORMAT_FUNCTION_OUTPUT_LENGTH_LIMIT
— неверное название, это не ограничение на размер выводаformat()
.enable_if_t<A, int>*
— лучше второй параметр сделатьvoid
. Каноничнее. Иначе возникает ощущение, что этотint
что-то значит. А ещё лучше — убрать, он возьмёт тип по умолчанию, т.е.void
.- Стоит проверить, что
to_chars
вернул успех. Рекомендую сразу брать structured binding. - Можно избавиться от
+1
для C-terminated string, если воспользоватьсяstring_view
. NUMBER_OF_POSSIBLE_SYMBOLS_IN_DECIMAL_FORM
-->MAX_DECIMAL_LENGTH
comment:9 Changed 4 years ago by
Owner: | changed from tarasov.denis to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Версии кончились.
Прости, Егор, что задолбал тебя.
comment:10 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Всё хорошо, версий в лабах специально исходно не предполагается :)
По стилю тоже успех.
Note: See
TracTickets for help on using
tickets.
Корректность 2/7:
is_detected_v
, это задание на SFINAE (поэтому так мало за корректность). Но вообще зачёт-зачёт, что нашли.vector<T>::const_reference != const T&
дляvector<bool>
Стиль 0.5/3:
MAX_OUTPUT_SIZE
is a highly misleading name. It is not MAX.make_string(...)
enable_if
-->enable_if_t
, аналогичноis_same
-->is_same_v
.==
— ровно один пробел.i = 0; i + 1 < size
.append
/push_back
лучше+=
.