TemplateName Template = Arg.getAsTemplate();
assert(!Template.isNull() && Template.getAsTemplateDecl() &&
"Wrong kind of template template argument");
+
+ // We don't ever want to substitute for a qualified template name, since
+ // the qualifier is handled separately. So, look through the qualified
+ // template name to its underlying declaration.
+ if (QualifiedTemplateName *QTN = Template.getAsQualifiedTemplateName())
+ Template = TemplateName(QTN->getTemplateDecl());
+
return Template;
}
}
};
template <class T,
- template<class _T, template<class> class Compare = less,
+ template<class _T, template<class> class Compare = PR9016::less,
class = typename interval_type_default<_T,Compare>::type,
template<class> class = allocator> class IntervalSet>
struct ZZZ
};
template <class T,
- template<class _T, template<class> class Compare = less,
+ template<class _T, template<class> class Compare = PR9016::less,
class = typename interval_type_default<_T,Compare>::type,
template<class> class = allocator> class IntervalSet>
void int40()