W zasadzie, może być tylko jedna klasa z niestatycznymi składowymi w hierarchii klas.

Rozszerzenia w rdzeniu języka związane ze zwiększeniem wydajności kompilacji i łączenia Szablony zewnętrzne C++ musi stworzyć instancję szablonu zawsze kiedy napotka w pełni określony szablon w jednostce translacyjnej. Może to spowodować dramatyczny wzrost czasu kompilacji, szczególnie gdy instancja szablonu jest tworzona w wielu jednostkach translacyjnych przy użyciu tych samych parametrów. W starszym C++ nie jest bowiem możliwe wstrzymanie tworzenia instancji szablonu w takiej sytuacji.

C++11 wprowadza ideę szablonów zewnętrznych. Starszy C++ już posiada możliwość zmuszania kompilatora do tworzenia instancji w określonym miejscu.

template class std::vector<MojaKlasa>;