Selv om templatmetaprogrammering ofte er svært annerledes fra programmeringsspråket som det brukes med, har det flere bruksområder. Før var templatmetaprogrammering den eneste måten å utføre beregninger under kompilering på. Med C++11 kom constexpr som gjorde det lettere å gjøre beregninger under kompilering, hvor man ikke er avhengig av funksjonelle programmeringsteknikker som i templatmetaprogrammering. Det blir uansett brukt som følge av at mange er avhengig av tidligere versjonsstandarder og at constexpr har begrensninger i C++11 (de har forøvrig blitt lettet mye på med C++14). En fordel med å utføre beregninger under kompilering enn ved kjøretid er at man slipper å utføre beregninga hver gang programmet skal kjøres. I stedet gjør man det under kompilering. Til gjengjeld tar det lengre tid å kompilere. I C++ er templatmetaprogrammering den eneste måten du kan gjøre beregninger med typer på, dette gjør det ofte særlig relevant for utviklere av biblioteker. Templatmetaprogrammering er veldig utbredt i C++ sitt standardbibliotek.