On 10/14/2011 08:23 PM, Paolo Carlini wrote:
Hi,
submitter complains that, at variance with C++11, __is_base_of doesn't
handle an incomplete base type (the first parameter). The reason seems
simple: in finish_trait_expr we try to complete *both* types instead
of doing it where/when necessary.
Hmm, maybe we should be even more careful and call complete (type2) only
when
NON_UNION_CLASS_TYPE_P (type1) && NON_UNION_CLASS_TYPE_P (type2) &&
!same_type_ignoring_top_level_qualifiers_p (type1, type2)
is true?
Paolo.