------- 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<vector<vector<int> > > 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<std::vector<int> >, _Alloc =
std::allocator<std::vector<std::vector<int> > >]’

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

Reply via email to