Size: a a a

Ассемблер

2021 July 06

d

disba1ancer in Ассемблер
инициализация ничего не может вернуть
источник

d

disba1ancer in Ассемблер
максимум исключение кинуть
источник

АШ

Алексей Шведов... in Ассемблер
Может - статус инициализации
источник

АШ

Алексей Шведов... in Ассемблер
Нет такого понятия - инициализация вернула исключение
источник

d

disba1ancer in Ассемблер
не вернула, а кинула
источник

АШ

Алексей Шведов... in Ассемблер
Есть понятие - ошибка инициализации \ успешная инициализация
источник

АШ

Алексей Шведов... in Ассемблер
В кого кинула? В программиста? Что это вообще за слэнг
источник

АШ

Алексей Шведов... in Ассемблер
источник

d

disba1ancer in Ассемблер
в плюсах конструкторы ничего не возвращают, у них нет типа возврата, код ошибки вернуть они не могут, не надо путать инициализацию в общем смысле и то как это делается в плюсах
источник

MA

Max Azatian in Ассемблер
Тогда уж выкинула
источник

d

disba1ancer in Ассемблер
выбросила...
источник

АШ

Алексей Шведов... in Ассемблер
А вот и нет, возвращает обьект
источник

АШ

Алексей Шведов... in Ассемблер
Википедия:
конструкторы не имеют типа возвращаемых данных (на самом деле они всегда возвращают this);
источник

d

disba1ancer in Ассемблер
можно и так считать, но кроме собственно this они вернуть ничего не могут, точнее они только его и возвращают, единственный способ ничего не вернуть — бросить исключение
источник

АШ

Алексей Шведов... in Ассемблер
Можно нехитрым способом сделать значение IsInitialized
И вернуть волшебный статус инициализации
источник

d

disba1ancer in Ассемблер
ну это уже архитектурные костыли
источник

АШ

Алексей Шведов... in Ассемблер
А вот и нет!
В fstream есть статус isOpen()
И в большинстве других библиотек STL, и не STL
источник

d

disba1ancer in Ассемблер
имхо, всё равно костыльно, но в таких случаях трудно что-то нормально придумать
источник

d

disba1ancer in Ассемблер
хотя учитывая что у нас после мувов остаются объекты в unspecified state, то может и не настолько костыльно
источник

АШ

Алексей Шведов... in Ассемблер
Это не костыль, это и есть статус инициализации. А вот костыль это бросить исключение в конструкторе, и потом криво его обрабатывать
источник