模板元的簡單學習

2021-09-08 22:24:56 字數 1177 閱讀 9443

特別值得注意的是,由於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...