Size: a a a

2020 July 17

AM

Aleksander Mironov in supapro.cxx
Anatoly Shirokov
за что отвечает? каким способом он сообщит о том, что что-то пошло не так? просто вернет null?
За действия в случае ошибки. Напишет в лог.
источник

AS

Anatoly Shirokov in supapro.cxx
Aleksander Mironov
За действия в случае ошибки. Напишет в лог.
а, Qt style
источник

W

Wild_Wind in supapro.cxx
Егор
эхх std::expected бы...
+
Вроде в tl:: есть.
источник

AS

Anatoly Shirokov in supapro.cxx
Егор
эхх std::expected бы...
я себе наколхозил, но потом все равно вернулся к exception
источник

AS

Anatoly Shirokov in supapro.cxx
Aleksander Mironov
За действия в случае ошибки. Напишет в лог.
ну тогда ты сам знаешь, что делать, фигачь в лог и возвращай nullptr, это будет признаком для клиента, что что-то пошло не так
источник

s

std::slavik in supapro.cxx
Aleksander Mironov
Здравствуйте. Прочитал что фабричный метод не должен возвращать нулл, вообще это здраво и логично.
Но что делать?
Если ситуация, когда создание объекта не удалось - нормальная.
спать ложиться
источник

s

std::slavik in supapro.cxx
когда не знаешь что делать - ложись спать
источник

s

std::slavik in supapro.cxx
еще есть вариант при ошибке - зависать
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Здравствуйте. Прочитал что фабричный метод не должен возвращать нулл, вообще это здраво и логично.
Но что делать?
Если ситуация, когда создание объекта не удалось - нормальная.
Не, ну и что не должен возвращать null - это тоже как-то сгоряча...
Кто это придумал?
источник

AM

Aleksander Mironov in supapro.cxx
Ладно, с этим понятно, что ситуативно.
Продолжу терроризировать конфу вычитанными проблемами.
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Здравствуйте. Прочитал что фабричный метод не должен возвращать нулл, вообще это здраво и логично.
Но что делать?
Если ситуация, когда создание объекта не удалось - нормальная.
GoF написан до появления в С++ исключений, на сколько я помню, и такие глубокие детали как обработка ошибок там, на сколько я помню, не оговариваются вообще .
источник

AM

Aleksander Mironov in supapro.cxx
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
Явно вызывать деструктор не надо практически никогда.
источник

АК

Александр Караев... in supapro.cxx
Aleksander Mironov
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
в чем проблема переприсвоить? зачем старый уничтожать руками?
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
Не надо вызывать деструктор, надо просто удалить один объект, и создать новый
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Aleksander Mironov
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
Храни указатель или опшнал или любую другую обертку над типом, которая позволяет пересоздавать объект
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Я тут вычитал, что стоит 10 раз подумать, прежде чем явно вызывать деструктор.
У меня такая ситуация.

Во время цикла в локальной функции, объект может уйти в аварийное состояние, это нормальная ситуация.
Вывести его из ошибки нельзя, можно только создать новый.
Но пишут, что нельзя вызывать явно деструкторы.
Т.е. я не могу получается его грохнуть и тут же создать новый?
Деструктор вызывается руками только в одном случае: если ты сам создал объект через placement new
источник

IZ

Ilia Zviagin in supapro.cxx
Artöm Bakri Al-Sarmini
Храни указатель или опшнал или любую другую обертку над типом, которая позволяет пересоздавать объект
Может лучше просто объект класса памяти  auto ?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Может там тип некопируемый
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Если обычный, переприсвоение самое норм
источник