正文

回到頂部

1. TMP是什么?

模板元編程(template metaprogramming TMP)是實現(xiàn)基于模板的C++程序的過程,它能夠在編譯期執(zhí)行。你可以想一想:一個模板元程序是用C++實現(xiàn)的并且可以在C++編譯器內(nèi)部運行的一個程序,它的輸出——從模板中實例化出來的C++源碼片段——會像往常一樣被編譯。

回到頂部

2. 使用TMP的優(yōu)勢

如果這沒有沖擊到你,是因為你沒有足夠盡力去想。

 

C++不是為了模板元編程而設(shè)計的,但是自從TMP早在1990年被發(fā)現(xiàn)之后,它就被證明是非常有用的,為了使TMP的使用更加容易,在C++語言和標(biāo)準(zhǔn)庫中加入了一些擴展。是的,TMP是被發(fā)現(xiàn)的,而不是被發(fā)明。當(dāng)模板被添加到C++中的時候TMP這個特性就被引入了。對于某些人來說所有需要做的就是關(guān)注如何以一種聰明的和意想不到的方式來使用它。

TMP有兩種強大的力量。第一,它使得一些事情變得容易,也即是說如果沒有TMP,這些事情做起來很難或者不可能實現(xiàn)。第二,因為模板元編程在C++編譯期執(zhí)行,它們可以將一些工作從運行時移動到編譯期。一個結(jié)果就是一些原來通常在運行時能夠被發(fā)現(xiàn)的錯誤,現(xiàn)在在編譯期就能夠被發(fā)現(xiàn)了。另外一個結(jié)果就是使用TMP的C++程序在基本上每個方面都更加高效:更小的執(zhí)行體,更短的運行時間,更少的內(nèi)存需求。(然而,將工作從運行時移到編譯期的一個后果就是編譯時間增加了。使用TMP的程序比沒有使用TMP的程序可能消耗更長的時間來進行編譯。)

回到頂部

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式