模板元程式設計

2021-08-19 23:31:55 字數 893 閱讀 1549

模板元程式設計:遊戲開發中實現遞迴,使得編譯時期長,執行速度快。

詳細介紹

#include//模板元吧執行時消耗的時間,在編譯期間優化

templatestruct data;};

template<>

struct data<1>;};

template<>

struct data<2>;};

//1 1 2 3 5 7

int getdata(int n)

else }

void main()

//主要思想

////利用模板特化機制實現編譯期條件選擇結構,利用遞迴模板實現編譯期迴圈結構,模板元程式則由編譯器在編譯期解釋執行。

////優劣及適用情況

////通過將計算從執行期轉移至編譯期,在結果程式啟動之前做盡可能多的工作,最終獲得速度更快的程式。也就是說模板元程式設計的優勢在於:

////1.以編譯耗時為代價換來卓越的執行期效能(一般用於為效能要求嚴格的數值計算換取更高的效能)。通常來說,乙個有意義的程式的執行次數(或服役時間)總是遠遠超過編譯次數(或編譯時間)。

////2.提供編譯期型別計算,通常這才是模板元程式設計大放異彩的地方。

////模板元程式設計技術並非都是優點:

////1.**可讀性差,以類模板的方式描述演算法也許有點抽象。

////2.除錯困難,元程式執行於編譯期,沒有用於單步跟蹤元程式執行的偵錯程式(用於設定斷點、察看資料等)。程式設計師可做的只能是等待編譯過程失敗,然後人工破譯編譯器傾瀉到螢幕上的錯誤資訊。

////3.編譯時間長,通常帶有模板元程式的程式生成的**尺寸要比普通程式的大,

////4.可移植性較差,對於模板元程式設計使用的高階模板特性,不同的編譯器的支援度不同。

模板 模板元程式設計

將進行型別引數代替作為一種方便的方法,這意味著產生了一種支援編譯時程式設計的機制,這樣的程式稱為模板元程式 template metaprogram 因為正在 為乙個程式進行程式設計 事實證明可以用它做很多事情。實際上,模板元程式設計就是完全的圖靈機 turing complete 因為它支援選擇 ...

模板元程式設計

類是對物件的抽象,類模板則是對類的抽象 抽象是為提供更強的表達能力,還有統一 一致性 在更高的抽象觀點上來看,型別和值是同一種東西,同樣可以計算。模板可以看作是一種更智慧型的巨集,為了在使用時的一致性,使用了許多的技巧。現代的程式語言,要麼為了效率,把以前執行時的工作拿到編譯期。要麼為了更大的自由度...

模板元程式設計 二

c 模板元程式設計是讓編譯器提前完成一些執行期的工作,這樣提高了程式的執行期速度。由編譯器完成,那些只能在編譯器做工作,可是在編譯器能使用的東西很少。模板機制是c 除了繼承之外的 重用的一項關鍵的機制,它在編譯器完成模板的例項化的特性滿足了能在編譯期做工作的基本條件。模板的特化和遞迴是元程式設計中的...