Clang currently does no real checking of the template argument list when a template-id is used to declare a constructor:
template<class T> struct X {
X<T*, T>(); // Clang erroneously accepts this.
};
Both gcc and edg emit an error on the above code (though one could claim the spec temp.local p1 is perhaps not as explicit as it could be in this regard)
You could use StringifiedTemplateArgs.empty() instead.