>>12
むしろ継承関係にあるからこそのエラーと思われ。
継承関係になかったら別のエラーになるけどさ。

gcc-2.95.3 でcompileしてみた。
conversion from `auto_ptr<D>' to `auto_ptr<B>' is ambiguous
: candidates are: auto_ptr<D>::operator auto_ptr<B><B>()
: auto_ptr<B>::auto_ptr<D>(auto_ptr<D> &)

>>29
互換性があればcompileできるだろ?