------- Comment #49 from jason at gcc dot gnu dot org 2009-04-05 06:06 ------- I think it's best to just leave the default arguments in when pretty-printing a function template specialization, as in the string example; otherwise we won't know what _Alloc in the function parameter list means. Just omitting default arguments when dumping class template specializations will solve the combinatorial explosion problem as displayed in the original bug report; if we're dealing with vector > > a bug report referring to a member of vector will look like .../libstdc++-v3/include/bits/stl_vector.h:1006: instantiated from ‘void std::vector<_Tp, _Alloc>::_M_initialize_dispatch(_InputIterator, _InputIterator, std::__false_type) [with _InputIterator = double, _Tp = std::vector >, _Alloc = std::allocator > >]’ So we only see std::allocator once, not in all the sub-vectors. This seems to me like the right balance, which happens to be what the current patch provides. I'm going to clean it up a bit more and check it in. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14912