Opened 4 years ago

Closed 4 years ago

#284 closed ожидаются исправления (задача сдана)

Home assignment #4

Reported by: Nicholas Kapralov Owned by: rutsky,grabovoy.philipp
Priority: проверка Milestone: ha4-milestone2
Component: HA#4 function Version: 1.0
Keywords: Cc:

Description

Здравствуйте!

Проверьте, пожалуйста, мою реализацию fn::function, в smoke-тесте проходят все assert'ы, кроме implementation-defined.

Изначально закоммитил файл до первого дедлайна, но не смог сразу найти ошибку с освобождением памяти в деструкторе, только сейчас разобрался и заменил указатель на std::shared_ptr.

С уважением,
Николай.

Change History (19)

comment:1 Changed 4 years ago by Vladimir Rutsky

Component: HA#1 matricesHA#4 function

comment:2 Changed 4 years ago by cpptester

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

Tested revision 604 by kapralov.nikolaj.

Smoke tests

test

stage

result

info

log

run_function_smoke_test.cpp

WARNING

run_function_smoke_test-gcc62.log

FAILURE

exit code 139

run_function_smoke_test-run.log

Common header used in some tests: common.h

comment:3 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Smoke tests

test

stage

result

info

log

run_function_smoke_test.cpp

SUCCESS
FAILURE

exit code 139

run_function_smoke_test-run.log

Common header used in some tests: common.h

comment:4 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Smoke tests

test

stage

result

info

log

run_function_smoke_test.cpp

SUCCESS
FAILURE

exit code 139

run_function_smoke_test-run.log

Common header used in some tests: common.h

comment:5 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Main tests

test

stage

result

info

log

run_functor_copied.cpp

SUCCESS
FAILURE

exit code 139

run_functor_copied-run.log

Common header used in some tests: common.h

comment:6 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Main tests

test

stage

result

info

log

run_functor_copied.cpp

SUCCESS
FAILURE

exit code 139

run_functor_copied-run.log

run_functor_desctructor.cpp

SUCCESS
FAILURE

exit code 139

run_functor_desctructor-run.log

Common header used in some tests: common.h

comment:7 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Main tests

test

stage

result

info

log

run_functor_copied.cpp

SUCCESS
FAILURE

exit code 139

run_functor_copied-run.log

run_functor_desctructor.cpp

SUCCESS
FAILURE

exit code 139

run_functor_desctructor-run.log

Common header used in some tests: common.h

comment:8 Changed 4 years ago by cpptester

Tested revision 711 by kapralov.nikolaj.

Main tests

test

stage

result

info

log

run_functor_copied.cpp

SUCCESS
FAILURE

exit code 139

run_functor_copied-run.log

Common header used in some tests: common.h

comment:9 Changed 4 years ago by Vladimir Rutsky

Николай, исправьте, пожалуйста, ваше решение, чтобы оно проходило автотесты.

Тест run_functor_copied.cpp проверяет, что function хранит копию функтора (как это делает std::function). Вы используете std::shared_ptr и можете хранить один и тот же функтор в нескольких function --- исправьте, пожалуйста.

comment:10 Changed 4 years ago by Nicholas Kapralov

К сожалению, пока ещё не разобрался, как это сделать, но стараюсь сделать это как можно скорее.

comment:11 Changed 4 years ago by cpptester

Tested revision 791 by kapralov.nikolaj.

All tests passed. Good job!

comment:12 Changed 4 years ago by Nicholas Kapralov

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

comment:13 Changed 4 years ago by cpptester

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

Tested revision 791 by kapralov.nikolaj.

Main tests

test

stage

result

info

log

run_assign2.cpp

SUCCESS
FAILURE

exit code 139

run_assign2-run.log

Common header used in some tests: common.h

comment:14 Changed 4 years ago by Vladimir Rutsky

Milestone: ha4-milestone1ha4-milestone2

Замечания:

  1. Бросайте исключение по *новому* значению:
    namespace details
    {
        using fn::bad_function_call;

        bad_function_call bfc_exception;
    }

...
//throw details::bfc_exception;
throw bad_function_call();

Это исключение "легковесное" и нет ничего страшного создавать новый экземпляр каждый раз.
Сейчас вы создаёте экземпляр исключения с внешней линковкой, и программа не слинкуется, если ваш заголовочный файл будет использоваться в нескольких единицах трансляции.

comment:15 Changed 4 years ago by cpptester

Tested revision 798 by kapralov.nikolaj.

Smoke tests

test

stage

result

info

log

run_function_smoke_test.cpp

FAILURE

run_function_smoke_test-gcc62.log

Common header used in some tests: common.h

comment:16 Changed 4 years ago by Vladimir Rutsky

Страж включения должен оборачивать весь файл, включая включения других заголовочный файлов:

#include <exception>
#include <iostream>

#ifndef FN
#define FN

Касательно падающего в данный момент теста --- похоже, что вы удалили большую часть своего решения в последнем коммите (но так и не исправили замечание про bfc_exception).

Удостоверьтесь, что вы закоммитили что нужно.

comment:17 Changed 4 years ago by cpptester

Tested revision 806 by kapralov.nikolaj.

All tests passed. Good job!

comment:18 Changed 4 years ago by Nicholas Kapralov

Действительно, нашёлся какой-то старый файл с тем же именем, недоглядел, извините. В актуальной версии стражи включения на своих местах, спасибо за помощь.

Last edited 4 years ago by Nicholas Kapralov (previous) (diff)

comment:19 Changed 4 years ago by Vladimir Rutsky

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

Решение зачтено.

Note: See TracTickets for help on using tickets.