Друзья, прошу помощи в постижении дзен.
Никак не найду на гугло-просторах ответа на главный вопрос бытия: какой *_cast в C++ нужно применить в конкретный момент.
Сложилось мнение, что dynamic_cast нужно использовать для отсеивания неподходящих потомков, расположенных по указателю на родительский класс; reinterpret_cast - для приведения указателей; static_cast - для всего остального. Но пятая точка вместе с коллегой подсказывают, что я могу ошибаться.
Объясните пожалуйста в каких случаях нужно какие cast`ы использовать и собственно в чем их главное отличие.
Заранее благодарен за обмен опытом (: