boost::shared_polymorphic_downcastを使おうと思ったんだが、
// shared_*_cast names are deprecated. Use *_pointer_cast instead.
(適当な訳:shared_*_cast名は非難される。代わりに*_pointer_castを使え。)
とかコメントに書かれている。
でも、対応する*_pointer_castは存在しない。
(´・ω・`)

こんなとき、皆さんならどうしますか?