The problem I have is related to an spurious warning in template instantiations that involve partially specialized templates.
In the test case provided you can see that a perfectly legal template instantiation is reported as ambiguous by SWIG. There are two template specializations that match and SWIG considers them as equal, but one is indeed more specialized and should be chosen (g++ doesn't complain compiling the very same code).
Additionally, warnfilter doesn't help. It has worked other times for warnings with templates, but not this time. A couple of tries are included in the test case.