Det finnes etablerte teknikker som kan gjøre templatmetaprogrammer svært mer effektive enn om det skulle vært programmert i det opprinnelige språket. Et eksempel på det er uttrykkstemplater som er mye brukt i mattebiblioteker når det ofte blir store midlertidige variabler som må lagres ved å evaluere sammensatte uttrykk. Et eksempel er addisjon av tre matriser. I ordinære programmeringsspråk vil først addisjonen av de to første matrisene lagres i en midlertidig variabel før det adderes med den siste matrisen. Dette vil allokere minne minst to ganger. En løsning på dette problemet er en spesiell implementering av lat evaluering ved templatmetaprogrammering. Det blir implementert ved at man lar operator+ returnere et objekt av en brukerdefinert type som skal representere et uevaluert subuttrykk, for eksempel addisjon av to matriser. Ved evaluering av større uttrykk bygger man opp et «parse tree» av disse objektene som representerer de uevaluerte subuttrykkene. Treet evalueres kun når strukturen som representerer treet blir tildelt en variabel. For å få til den effekten definerer man da operator=. Vær oppmerksom på at evaluering krever at man traverserer treet, som i seg selv er en kostbar operasjon. Men alt i alt vil dette kun kreve en minneallokering, om det implementeres riktig.