Opened 4 years ago

Closed 4 years ago

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

WW #13

Reported by: gabitov.daniil Owned by: Артур Гулецкий (huletski)
Component: WW_array Version: 3.0
Keywords: Cc:

Description


Change History (8)

comment:1 Changed 4 years ago by gabitov.daniil

Summary: WW 13WW #13

comment:2 Changed 4 years ago by gabitov.daniil

Type: ожидается проверкаожидаются исправления

comment:3 Changed 4 years ago by gabitov.daniil

Type: ожидаются исправленияожидается проверка

comment:4 Changed 4 years ago by Артур Гулецкий (huletski)

Type: ожидается проверкаожидаются исправления

Замечания:

  • mv smoke_compile.cpp main.cpp
  • make не собирает, когда надо:
    {lab_13}[2262]$ make
    g++ -c -o obj/smoke_compile.out -g -Wall -Wextra -Werror -Iinclude -std=c++11 src/smoke_compile.cpp
    g++ -o  lab_13  obj/smoke_compile.out
    {lab_13}[2263]$ touch include/my_array.h 
    {lab_13}[2264]$ make
    make: Nothing to be done for 'all'.
    
  • лишный файл .vscode;
  • нужно добавить поддержку op=, copy ctor, mv ctor;
  • my_array::empty: массив из N элементов всегда пустой?

my_array.h

  • 13: CHAR_BIT есть стандартный;
  • 23,24: если знаете про constexpr, почему здесь не написали?
  • 110: каст к char* выглядит как костыль. Неясно зачем передавать в прокси константный указатель, если значение по нему может меняться -> что-то не так с интерфейсами;
  • 121: преобразование bool->char избыточно;
  • 172: memset'ом было бы эффективнее.

Баллы: 7.5, доделывайте.

comment:5 Changed 4 years ago by gabitov.daniil

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:6 Changed 4 years ago by Артур Гулецкий (huletski)

Type: ожидается проверкаожидаются исправления

Замечания:

сборка

  • отсутствует main.cpp;
  • неожиданное расширение у генерируемых объектных файлов: out вместо о;
  • при модификации include/my_array.h решение не пересобирается:
    {lab_13}[2428]$ pwd && svn up && svn status
    /home/hfx/dvl/cpp19/gabitov.daniil/lab_13
    Updating '.':
    At revision 3791.
    {lab_13}[2429]$ tree .
    .
    ├── include
    │   └── my_array.h
    ├── Makefile
    └── src
        └── smoke_compile.cpp
    
    2 directories, 3 files
    {lab_13}[2430]$ make
    mkdir -p obj
    g++ -c -o obj/smoke_compile.out -g -Wall -Wextra -Werror -Iinclude -std=c++11 src/smoke_compile.cpp
    g++ -o  lab_13  obj/smoke_compile.out
    {lab_13}[2431]$ touch include/my_array.h 
    {lab_13}[2432]$ make
    make: Nothing to be done for 'all'.
    

my_array.h

  • точно нужно op= и ctors явно реализовывать? версия по умолчанию для T[] не подойдет?
  • 9: используйте c++ версии c заголовков: stdio.h -> cstdio;
  • 180: избыточный каст;
  • 193: можно написать лаконичнее (*this)[index];
  • 216: работает, только не всегда: -1 не обязательно 0xFF...FF, лучше ~0.

Баллы: 8.75, можно доделать до 23.03.

comment:7 Changed 4 years ago by gabitov.daniil

Type: ожидаются исправленияожидается проверка
Version: 2.03.0

comment:8 Changed 4 years ago by Артур Гулецкий (huletski)

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

Решение не собирается:

{lab_13}[2534]$ pwd && svn up && svn status
/home/hfx/dvl/cpp19/gabitov.daniil/lab_13
Updating '.':
At revision 3822.
{lab_13}[2535]$ make
mkdir -p obj
make: *** No rule to make target 'src/main.cpp', needed by 'obj/main.o'.  Stop.

Замечания:

my_array.h

9: используйте c++ версии c заголовков: stdio.h -> cstdio;

  • 10, 11: прочих заголовков это тоже касается;
  • стал падать код ниже -> -1:
    lab_13::my_array<bool, 10> vb;
    const auto &c_ref = vb;
    assert(c_ref[0] == false);
    vb[1] = true;
    assert(c_ref[0] == false);
    

Баллы: 9.

Note: See TracTickets for help on using tickets.