特別值得注意的是,由於c++的模板語言是在編譯器編譯的時候完畢的,所以又稱編譯期為靜態語言,通常的c++語言又稱為動態語言或者執行時語言。正是由於模板語言是在編譯
期完畢的。所以我們能夠借助於這樣的編譯期的計算實現**自己主動生成的目的,從而實現c++
自己主動化程式設計。
巨集typedef影射
static
型別變數和函式
const
型別變數=。
:?。-運算子
enum
執行期
物件使用
函式呼叫
變數賦值
操作變數時
&,+=,++,--
等運算子。
所以。假設想實現模板元程式設計。必需要把握的是一定要在編譯期完畢程式,而不是在程式的執行期。細緻區分執行期和編譯期是模板元程式設計的第一步。
#include //編譯期四則計算的演示樣例**
templatestruct add ; };
templatestruct sub ; };
templatestruct mul ; };
templatestruct div ; };
int main()
執行結果:
2 利用模板元實現遞迴和迴圈
#include using namespace std;
//求階乘
templatestruct power;//迴圈遞迴過程
};template<> struct power<0> ; //0的階乘是1,也是迴圈的終止條件
};//求和
參考文章:
學習 模板 高斯消元
邵哥日推題目使我產生學習高斯消元的想法qaq 學習的資料qwq 2.小東西quq 寶寶qaq 1 include2 include3 include4 using namespace std 5const int sz 111 6 intn 7double eps 1e 7 8 double pla...
模板 模板元程式設計
將進行型別引數代替作為一種方便的方法,這意味著產生了一種支援編譯時程式設計的機制,這樣的程式稱為模板元程式 template metaprogram 因為正在 為乙個程式進行程式設計 事實證明可以用它做很多事情。實際上,模板元程式設計就是完全的圖靈機 turing complete 因為它支援選擇 ...
學習C 模板元程式設計(5)
這兩周學習了 c tmp 第 五 六章,是關於tmp的序列 容器 迭代器和演算法。做了不少習題,其中最有意思的 也是花了我最多時間的 習題是用tmp實現二分查詢樹 binary search tree 從第五章的一道關於二分樹的習題開始。題目給出乙個編譯期的二分樹資料結構,例如 typedef tr...