Size: a a a

2020 July 17

D

Danya in supapro.cxx
Хз, у меня всё норм компилится и на годболте
https://godbolt.org/z/1s6jWP
источник

v

vexillum in supapro.cxx
тоже собралось с c++17, нормально работает
источник

Е

Егор in supapro.cxx
vexillum
тоже собралось с c++17, нормально работает
видимо мой компелятор поломался(
источник

AM

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

АК

Александр Караев... in supapro.cxx
Егор
видимо мой компелятор поломался(
проверь, дебаг или релиз
источник

Е

Егор in supapro.cxx
Александр Караев
проверь, дебаг или релиз
Да и там и там. Стат. анализатор работает как надо, а при билде ассерт срабатывает, у меня такие приколы только с лупхолами были
источник

АК

Александр Караев... in supapro.cxx
Егор
Да и там и там. Стат. анализатор работает как надо, а при билде ассерт срабатывает, у меня такие приколы только с лупхолами были
в отдельный cpp пробовал выносить и проверять? или даже в чистый проект
источник

Е

Егор in supapro.cxx
Александр Караев
в отдельный cpp пробовал выносить и проверять? или даже в чистый проект
Код с годболта и так из чистого проекта взял
источник

VR

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

АК

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

AM

Aleksander Mironov in supapro.cxx
Vladyslav Ryuzaki
Возвращать особый "пустой" объект? Кидать исключение?
Исключение не вариант, я их как раз делаю для того что бы внутри их обрабатывать =)
А вот с особым пустым, а не приведет ли это еще более труднотлавливаемым ошибкам, когда что то будет аутировать с этим пустым объектом.
источник

AM

Aleksander Mironov in supapro.cxx
Александр Караев
почему фабричный метод не должен возвращать null?
Прочитал на стаковерфлоу.
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Aleksander Mironov
Исключение не вариант, я их как раз делаю для того что бы внутри их обрабатывать =)
А вот с особым пустым, а не приведет ли это еще более труднотлавливаемым ошибкам, когда что то будет аутировать с этим пустым объектом.
Тогда просто возвращай null и проверяй на вызывающей стороне)
источник

АК

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

AS

Anatoly Shirokov in supapro.cxx
Aleksander Mironov
Исключение не вариант, я их как раз делаю для того что бы внутри их обрабатывать =)
А вот с особым пустым, а не приведет ли это еще более труднотлавливаемым ошибкам, когда что то будет аутировать с этим пустым объектом.
если не выбрасываешь исключение, то как ты сообщишь о проблеме пользователю?
источник

AM

Aleksander Mironov in supapro.cxx
Anatoly Shirokov
если не выбрасываешь исключение, то как ты сообщишь о проблеме пользователю?
Фабричный метод за это отвечает.
источник

AS

Anatoly Shirokov in supapro.cxx
тогда уж бери на вооружение подход WINAPI:
int createObject(Object**pp) {
   if( bad ) return ERROR:
  *p = new Object();
  return SUCCESS;
}
источник

W

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

AS

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

Е

Егор in supapro.cxx
Wild_Wind
Почему?
У тебя не так уж много вариантов, либо код ошибки, либо нулл через опшионал, либо бросать екскпшен.
эхх std::expected бы...
источник