Commit Graph

1 Commits

Author SHA1 Message Date
William S Fulton 9924c5c3e1 Partial template specialization fixes to support default arguments
Default argments come from the primary template's parameter list.

Example:
  template<class Y, class T=int> struct X { void primary() {} };
  // Previously the specialization below resulted in:
  // Error: Inconsistent argument count in template partial specialization. 1 2
  template<class YY> struct X<YY*> { void special(YY*) {} };

  // Both of these correctly wrap the partially specialized template
  %template(StringPtr) X<const char *>;
  %template(ShortPtr) X<short *, int>;
2023-03-01 19:42:00 +00:00