Szablony języka C++ to mechanizm umożliwiający pisanie uogólnionego kodu, który kompilator może przystosować do dowolnego typu danych. Dzięki niemu programiści mogą wykorzystywać struktury danych zdefiniowane w bibliotece STL oraz pisać własny, generyczny kod. Powszechnie znanym ograniczeniem szablonów jest brak czytelnego sposobu informowania programisty, jakie cechy powinien spełniać typ, z którym szablon może zostać wykorzystany. Celem artykułu jest omówienie tego problemu, zademonstrowanie istniejących rozwiązań, a następnie przedstawienie mechanizmu Concepts Lite, który zostanie wprowadzony jako rozszerzenie języka C++ w 2014 roku.