生キャストを使ってしまうところ、望ましい方法
C++でのキャスト - 檜山正幸のキマイラ飼育記 メモ編にて:
Cの生のキャストは、構文が (DerivedConcrete *) だから、grepにひっからないのが困る。当然に安全性はないし。しかし、最近も「まーいいや」と使った気がする。イカンイカン。
探してもみつからないけど、次のような状況だと使ってしまう。
バイナリファイルからバイト列をバッファに読み込む。そのバイト列が構造を持つとして、(struct Hoge *)pBuffer みたいにバイト列バッファ先頭へのポインタを構造体へのポインタとみなして、フィールドを取り出すとか。
「バイト列を構造体と見なす」はどこかでやる必要があるから、不明なデータ(無構造バイトデータ)を特定型だと見なす行為はどこかで発生する。「不明データ+キャスト」を極力減らして、“分かっているデータの分かっているフィールド(なりメソッド)へのアクセス”に早めに移行する、ってことだろう。
早いタイミングで「不明(型なし)データ→型付きデータ」という移行を済ませておけば、移行の後は型安全に処理できる(コンパイラの型検査が助けてくる)。