http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52035
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #5 from Jason Merrill <jason at gcc dot gnu.org> 2012-02-06 21:28:32 UTC --- The problem here is that when we go to instantiate QVector<int>, we step through the members in order. When we instantiate the declaration of insert, we're using the declaration from the out-of-class definition, which uses the size_type typedef. But we haven't instantiated size_type yet, so tsubst thinks that we're instantiating it now, and we end up just returning the version from the template.