Opened 4 years ago

Closed 4 years ago

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

WW #18

Reported by: Gleb Marin Owned by: Egor Suvorov
Component: WW_format Version: 1.0
Keywords: Cc:

Description


Change History (1)

comment:1 Changed 4 years ago by Egor Suvorov

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

Корректность 5/7.

  • max_integer_length — неверная оценка, компилятор может иметь типы ещё больше. Надо смотреть на конкретный целочисленный тип.
  • sizeof("true") — грубая оценка, потому что учитывается нулевой символ. Лучше std::size, а ещё лучше просто забить на эти константы и вмонтировать их в десятистрочную специализацию, читать станет проще.
  • Неясно, почему в FormatHelper для целочисленных вызывается функция make_error_code(std::io_errc) и ей в качестве параметра передаётся std::errc.
  • Неаккуратное приближение размера в векторе: там элементы могут быть разного размера. Нельзя брать только первый.

Стиль 1.25/3:

  • Константы должны быть большими буквами.
  • Лучше объявлять константы не со словом static (которое, вообще говоря, надо заменить на namespace {}, а это ещё и из const следует автоматически, который следует из constexpr), а inline.
  • Все шесть констант на самом деле должны быть приватными для специализаций.
    • Например, названия vector_opening очень, очень намекают.
  • max_formattable_length — неверное название, отформатированная строчка может быть сильно длиннее это константы.
  • const_reference_owner/vector_*,formattable,vector_tarits — это всё детали реализации, должны жить в namespace impl
  • Неясно, откуда берётся digits10 + 2. Формула верная, но неочевидная, стоит пояснить.
  • vector_traits усложняет, лучше просто специализацию для FormatHelper<vector<T>> сделать.
  • Не надо .append(), используйте +=
Note: See TracTickets for help on using tickets.