Szablon () – element języka C++, umożliwiający programowanie uogólnione – tworzenie kodu niezależnego od typów, algorytmów oraz struktur danych.

Wyróżnia się: szablony funkcji szablony klasy metoda instancji szablony szablonu

Szablony w C++ Przykładowy szablon klasy w języku C++ wygląda następująco:

template <class T> class List

...

gdzie T jest parametrem szablonu, którego użyto w powyższej definicji zamiast konkretnego typu.

Powyższy wzorzec można wykorzystać następująco:

List <int> lista1; List <std::string> lista2; List <MojaKlasa> lista_mojej_klasy;

Podczas kompilacji następuje tak zwana konkretyzacja szablonu (ang. template instantiation), podczas której kompilator na podstawie typów danych przekazanych wzorcowi generuje kod właściwy do obsługi danego typu. W przypadku powyżej zostaną wygenerowane 3 kopie kodu dla odpowiednich typów.

Jedną z najbardziej znanych i najbardziej udanych aplikacji programowania uogólnionego jest standardowa biblioteka szablonów (STL). Od 1998 roku stanowi ona fragment biblioteki standardowej języka C++ i zawiera definicje licznych algorytmów (np. sort) i pojemników (np. vector i list), które charakteryzują się wysoką sprawnością i łatwością użycia.