[boost] [type_traits] is_base_of<B, D> should work when B is incomplete