------- Additional Comments From phenning at lanl dot gov 2005-07-21 23:26 ------- (In reply to comment #5) > Your explicit instantiation > template int foo< A_class<int> >(A_class<int> a); > obviously matches both the declarations of foo. I'm unsure which > one the compiler should choose, but if you want to instantiate the > second one, why don't you write > template int foo< A_class<int>,int >(A_class<int> a); > i.e. explicitly state the second template argument as well?
The compiler is more than happy to instantiate the second one... the problem is that it is converting my one template parameter explicit specialization into the two template parameter form, presumably because the function signature matches. I would expect that if I explicitly state the one parameter form, the compiler should instantiate the one parameter form. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22596