Re[5]: Набор исключений метода
От: AlexGin Беларусь  
Дата: 15.06.18 12:08
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>Здравствуйте, AlexGin, Вы писали:


AG>>dynamic_cast — с преобразованием указателя вернёт null (указатели есть в ANSI-C),

Ops>Только вот ничего подобного dynamic_cast в C нет, так что можно было бы и бросить. Так сделано скорее всего, чтобы можно было разруливать это без исключений. Но это противоречит "В стиле C++ всё таки — кинуть исключение".

Да, dynamic_cast в C, естественно, нет. Но так как он возвращает pointer, то null-pointer здесь как бы логичен.

AG>>dynamic_cast — с преобразованием ссылки кинет исключение (ссылки появились в C++) — в общем логично.

Ops>Это конечно, со ссылками я других вариантов вообще не вижу.

На сегодняшний день, IMHO наиболее востребованный вариант вообще НЕ dynamic_cast, а std::dynamic_pointer_cast<...>(...) — вызов его в случае неудачи возвращает nullptr.

http://en.cppreference.com/w/cpp/memory/shared_ptr/pointer_cast
http://www.cplusplus.com/reference/memory/dynamic_pointer_cast
Отредактировано 15.06.2018 12:38 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.