Выдает ли C ++ исключения времени выполнения, когда вы пытаетесь привести void*
к чему-то, что не является?
Нет, это не так.
Поведение вашей программы не определено: все может произойти. Может показаться, что программа работает большую часть времени, может произойти сбой в любой момент или может произойти что-то худшее.
void*
следует избегать во всех, кроме нескольких редких случаев в C ++; вместо того, чтобы использовать void*
, вам следует рассмотреть возможность использования наследования классов, полиморфизма или шаблонов, чтобы быть уверенным, что ваш код безопасен по типу. Хотя C ++ позволяет вам писать код, который не является безопасным с точки зрения типов, он также предоставляет множество инструментов, которые помогают вам писать код с безопасным типом и делают этот код намного более простым, простым и корректным.