Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

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

ha4

Reported by: Мусатян Сабрина Owned by: Vladimir Rutsky
Priority: проверка Milestone:
Component: HA#4 lazy_string Version: 1.0
Keywords: Cc:

Description

Здравствуйте, выкладываю свое решение;
Хотелось бы узнать можно ли как-то более удобно и красиво определять операторы (например +), в том плане, чтобы можно было сразу в одной функции учитывать случай, когда первый аргумент функции это символ а второй lazy_string и наоборот; а то в моем случае это копирование кода, что определенно нехорошо.

Change History (28)

comment:1 Changed 7 years ago by Мусатян Сабрина

Component: HA#1 matricesHA#4 lazy_string
Version: 1.0

comment:2 Changed 7 years ago by Мусатян Сабрина

Milestone: ha4-milestone1

comment:3 Changed 7 years ago by cpptester

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

Tested revision 733 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

FAILURE

run_smoke_test-gcc62.log

Common header used in some tests: common.h

comment:4 Changed 7 years ago by cpptester

Tested revision 734 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

WARNING

run_smoke_test-gcc62.log

run

SUCCESS

valgrind

SUCCESS

run_smoke_test-valgrind.log

gcc62-asan

WARNING

run_smoke_test-gcc62-asan.log

asan

SUCCESS

clang-san

SUCCESS

san

WARNING

run_smoke_test-san.log

Common header used in some tests: common.h

comment:5 Changed 7 years ago by cpptester

Tested revision 735 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

SUCCESS

run_smoke_test-valgrind.log

gcc62-asan

SUCCESS

asan

SUCCESS

clang-san

SUCCESS

san

WARNING

run_smoke_test-san.log

Common header used in some tests: common.h

comment:6 Changed 7 years ago by cpptester

Tested revision 736 by musatyan.sabrina.

Main tests

test

stage

result

info

log

comp_index_const.cpp

gcc62

FAILURE

comp_index_const-gcc62.log

ncomp_c_str_const.cpp

gcc62

FAILURE

ncomp_iostream_include.cpp

gcc62

FAILURE

run_assign_doesnt_compare.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_assign_self.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_aug_plus_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear-run.log

Common header used in some tests: common.h

comment:7 Changed 7 years ago by cpptester

Tested revision 748 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

ncomp_iostream_include.cpp

gcc62

FAILURE

run_assign_doesnt_compare.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_assign_self.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_aug_plus_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear-run.log

run_clear_linked.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_linked-run.log

Common header used in some tests: common.h

comment:8 Changed 7 years ago by cpptester

Tested revision 754 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear-run.log

run_clear_linked.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_linked-run.log

run_clear_wide.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_wide-run.log

run_ctor_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_ctor_no_mem-run.log

run_ctor_repeat_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

Common header used in some tests: common.h

comment:9 Changed 7 years ago by Мусатян Сабрина

Подскажите пожалуйста, почему тест ncomp_c_str_const.cpp может не компилироваться? Локально на моей машине все работает.

comment:10 Changed 7 years ago by cpptester

Tested revision 755 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

FAILURE

run_smoke_test-gcc62.log

Common header used in some tests: common.h

comment:11 Changed 7 years ago by cpptester

Tested revision 756 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_clear_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_no_mem-run.log

run_ctor_repeat_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_repeat_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_lazy_istring_less.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less-run.log

run_lazy_istring_less_rev.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less_rev-run.log

Common header used in some tests: common.h

comment:12 in reply to:  9 Changed 7 years ago by Vladimir Rutsky

Replying to musatyan.sabrina:

Подскажите пожалуйста, почему тест ncomp_c_str_const.cpp может не компилироваться? Локально на моей машине все работает.

Тесты, начинающиеся на ncomp_ не должны компилироваться, а вас ncomp_c_str_const.cpp компилируется.
Хотя мне кажется, что в этом тесте ошибка --- проигнорируйте пока этот тест.

comment:13 Changed 7 years ago by cpptester

Tested revision 767 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_c_str_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_str_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_str_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_c_str_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_str_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_str_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_char_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_char_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_char_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_aug_plus_wchar_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_wchar_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_wchar_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_clear_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_no_mem-run.log

run_ctor_c_str_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_c_str_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_c_str_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

Common header used in some tests: common.h

comment:14 Changed 7 years ago by cpptester

Tested revision 768 by musatyan.sabrina.

Main tests

test

stage

result

info

log

comp_char_traits_custom.cpp

gcc62

FAILURE

comp_char_traits_custom-gcc62.log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_aug_plus_lazy_str_shared_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_clear_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_clear_no_mem-run.log

run_ctor_c_str_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_c_str_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_c_str_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_c_str_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_c_str_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_c_str_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_c_wstr_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_c_wstr_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_c_wstr_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_repeat_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_repeat_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_index_assign_copy_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_index_assign_copy_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_index_assign_copy_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

Common header used in some tests: common.h

comment:15 Changed 7 years ago by cpptester

Tested revision 769 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_lazy_str_shared_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_aug_plus_lazy_str_shared_no_mem-run.log

run_clear_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_clear_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_clear_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_repeat_char_traits_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_char_traits_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_ctor_repeat_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_ctor_repeat_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_ctor_repeat_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_index_assign_copy_no_mem.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_index_assign_copy_no_mem-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_index_assign_copy_no_mem-asan.log

clang-san

SUCCESS

san

SUCCESS

run_lazy_istring_less.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less-run.log

run_lazy_istring_less_rev.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less_rev-run.log

run_less.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less-run.log

run_less_lazy_str.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less_lazy_str-run.log

Common header used in some tests: common.h

comment:16 Changed 7 years ago by cpptester

Tested revision 770 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

WARNING

run_smoke_test-gcc62.log

run

SUCCESS

valgrind

SUCCESS

run_smoke_test-valgrind.log

gcc62-asan

WARNING

run_smoke_test-gcc62-asan.log

asan

SUCCESS

clang-san

WARNING

run_smoke_test-clang-san.log

san

SUCCESS

Common header used in some tests: common.h

comment:17 Changed 7 years ago by cpptester

Tested revision 771 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_aug_plus_wchar_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_aug_plus_wchar_no_mem-run.log

run_lazy_istring_less.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less-run.log

run_lazy_istring_less_rev.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_lazy_istring_less_rev-run.log

run_less.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less-run.log

run_less_lazy_str.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less_lazy_str-run.log

run_less_lazy_str_rev.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less_lazy_str_rev-run.log

run_less_rev.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_less_rev-run.log

run_plus.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_plus-run.log

run_plus_c_str_no_mem.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_plus_c_str_no_mem-run.log

Common header used in some tests: common.h

comment:18 Changed 7 years ago by cpptester

Tested revision 772 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

WARNING

run_smoke_test-gcc62.log

run

SUCCESS

valgrind

SUCCESS

run_smoke_test-valgrind.log

gcc62-asan

WARNING

run_smoke_test-gcc62-asan.log

asan

SUCCESS

clang-san

SUCCESS

san

SUCCESS

Common header used in some tests: common.h

comment:19 Changed 7 years ago by cpptester

Tested revision 773 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

run_proxy_lvalue.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_proxy_lvalue-run.log

Common header used in some tests: common.h

comment:20 Changed 7 years ago by cpptester

Tested revision 774 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

Common header used in some tests: common.h

comment:21 Changed 7 years ago by cpptester

Tested revision 775 by musatyan.sabrina.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

FAILURE

run_smoke_test-gcc62.log

Common header used in some tests: common.h

comment:22 Changed 7 years ago by cpptester

Tested revision 776 by musatyan.sabrina.

Main tests

test

stage

result

info

log

ncomp_c_str_const.cpp

gcc62

FAILURE

Common header used in some tests: common.h

comment:23 Changed 7 years ago by Мусатян Сабрина

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

Проверьте пожалуйста мое решение;
Этот компилирующий тест я пропустила, как вы и сказали. Я посмотрела его код и не вижу причин, почему он не должен компилироваться, подскажите пожалуйста, если я не права и как это исправить

Спасибо

comment:24 Changed 7 years ago by Vladimir Rutsky

Milestone: ha4-milestone1ha4-milestone2
Type: ожидается проверкаожидаются исправления

Замечания:

  1. В чем смысл ловить и пробрасывать дальше исключения?
         try
         {
             return !((*this).operator == (toCmp));
         }
         catch (...)
         {
             throw;
         }
  1. Используйте LAZY_STRING_H вместо lazy_string_h:
#ifndef lazy_string_h
#define lazy_string_h
  1. Для проброса исключения стоит использовать throw;, вместо throw ba;:
         try
         {
             buffer newBuf;
             newBuf.emplace_back();
             sharedMem = std::make_shared<buffer>(newBuf);
         }
         catch(std::bad_alloc const & ba)
         {
             sharedMem = 0;
             //throw ba;
             throw; // <--
         }

Но на самом деле в данной задаче не стоит использовать try/catch: это плохой способ обеспечения гарантии строгой безопасности исключений. Гораздо лучше использовать умные указатели (вы отчасти так и делаете).

  1. Здесь:
     lazy_basic_string(const CharT *s)
     {
         try
         {
             ...
         }
         catch (std::bad_alloc const &ba)
         {
             sharedMem = 0;
             throw ba;
         }
         catch (std::exception const & e)
         {
             throw std::invalid_argument(e.what());
         }

нет смысла в первом catch --- если в конструкторе бросили исключение, значит объект не будет создан и нет смысла делать какие-то хитрые манипуляции с полями объекта (тем более, что sharedMem --- это std::shared_ptr, который выполняет строгие гарантии безопасности исключений, и он либо будет чем-то инициализирован, либо останется пустым).

Во втором catch тоже нет смысла --- лучше, если вызывающий код поймает оригинальное исключение, чем переписанное вами, но с тем же what().

  1. Не используйте vector::emplace_back() при работе с символами. Хотя это и позволяет избежать копирования через operator= это не лучший способ для инициализации vector символами.

Создавайте vector сразу нужного размера и работайте с буфером, который хранится в нём:

             size_t l = Traits::length(str);
             //buffer newBuf;
             //for (size_t i = 0; i < l; i++)
             //{
             //    newBuf.emplace_back();
             //}
             //Traits::copy(&(newBuf.front()), str, l);
             //newBuf.emplace_back();
             buffer newBuf(l + 1);
             Traits::copy(newBuf.data(), str, l + 1);

Исправьте, пожалуйста, в ближайшее время (ещё раз повторюсь: в вашем решении не должно быть try/catch).

comment:25 Changed 7 years ago by Vladimir Rutsky

  1. Касательно теста ncomp_c_str_const.cpp: тест корректен, c_str() должен вернуть немодифицируемый буффер. Исправьте это тоже, пожалуйста.

comment:26 Changed 7 years ago by Мусатян Сабрина

Спасибо за замечания!
К сожалению, у меня не получается по времени исправить это задание и ha5; поэтому этот тикет и 154 можно закрыть. Я попробую взять курс в следующем году еще раз.
Спасибо!

comment:27 Changed 7 years ago by Vladimir Rutsky

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

Хорошо, Сабрина, спасибо, что сообщили.

comment:28 Changed 7 years ago by Vladimir Rutsky

Milestone: ha4-milestone2

Milestone ha4-milestone2 deleted

Note: See TracTickets for help on using tickets.