C++ Gotchas の項目 45 からの引用:
まず、実行時チェックを実行しない可能性があるという点で、dynamic_cast は必ずしも動的であるとは限りません。派生クラス ポインター (または参照) からパブリック基本クラスの 1 つへの dynamic_cast を実行する場合、コンパイラーはキャストが成功することを静的に判断できるため、ランタイム チェックは必要ありません。もちろん、この場合、派生クラスからその公開基底クラスへの変換は事前定義されているため、いかなる種類のキャストも必要ありません。
上記の説明は、dynamic_cast が通常使用される場所であると思いました (したがって、実行時チェックを行うのでしょうか??)。
上記の引用と、dynamic_cast を使用する「典型的な」必要性との違いを誰か説明してもらえますか? これにより、いつ dynamic_cast を使用する必要があるか、および上記のシナリオで使用する必要がない理由について混乱しました。