什么是元編程
。。。
uj5u.com熱心網友回復:
這個問題有點兒大,建議看一下《c++ templates》。簡單說泛型其實就是模板編程。
元編程就是一種利用模板編程達到在編譯期實作程式邏輯的一種方式
uj5u.com熱心網友回復:
泛型編程好理解uj5u.com熱心網友回復:
如果你理解泛型,那么下面的代碼就是元編程
template<int N>
class Pow3 {
public:
enum {
result=3 * Pow3<N-1>::result };
};
template<>
class Pow3<0> {
public:
enum { result = 1 };
};
int main()
{
cout << Pow3<7>::result << endl;
}
uj5u.com熱心網友回復:
元編程就是利用模板的一個特性:模板類也好,模板函式也好,在編譯期根據具體的模板引數展開。以實作某種邏輯例如上邊的代碼,編譯的時候看到了Pow3<7>根據具體引數就是7,計算了Pow3<6>....依次展開最后到Pow3<0>,Pow3<0>是個特化,他的result=1;最后依次回傳算出Pow3<7>的result
uj5u.com熱心網友回復:
上邊我舉的是最簡單的栗子更復雜的例如c++的反射
uj5u.com熱心網友回復:
元編程也是泛型編程的一部分,但是,不直接實體化為代碼那些部分uj5u.com熱心網友回復:
編譯期就運行的代碼叫元編程uj5u.com熱心網友回復:
元編程就是編程的編程。撰寫一個程式來生成程式。類似地,元資料就是描述資料的資料 https://baike.baidu.com/item/%E5%85%83%E6%95%B0%E6%8D%AE/1946090?fr=aladdin
元學習就是學習如何學習 https://blog.csdn.net/qq_34886403/article/details/82664879
元哲學就是研究哲學的哲學 https://baike.baidu.com/item/%E5%85%83%E5%93%B2%E5%AD%A6/1008459?fr=aladdin
元xx = xx的xx
當你掌握了這種構詞方式后,你就可以發明新的名詞。
比如說你和你媳婦兩個人就是否要吵架這個問題吵了一架。你們這就是元吵架。

對于c++來說,模板編程就是撰寫一個程式(模板),用來控制編譯器展開模板生成一堆代碼,代碼生成了代碼,所以是元編程。任何為了生成代碼而撰寫的代碼,都是元編程。
uj5u.com熱心網友回復:
你這不是模板的特化嗎?uj5u.com熱心網友回復:
元編程雖然可以生成代碼,但是宏業業可以吧,宏能不能叫元編程,我覺得應該叫模板元編程uj5u.com熱心網友回復:
宏也可以算元編程,但是它的編程性有限,所以一般我們不把它叫做編程,但是模板不同。模板是圖靈機完備的,這意味著它可以實作任意的功能。
uj5u.com熱心網友回復:
元=meta。uj5u.com熱心網友回復:
C++元編程就是使用泛型的一種編程模式,典型如STL、Boostuj5u.com熱心網友回復:
元編程是用來產生代碼的程式,操縱代碼的程式,在運行時創建和修改代碼而非編程時,這種程式叫做元程式uj5u.com熱心網友回復:
C++模板是靜態的,不能“在運行時創建和修改代碼”,不同于Java、C#的泛型uj5u.com熱心網友回復:

泛型元編程,嚇跑新手沒商量!榨干編譯器設計師的腦細胞,還拖慢編譯速度、吃盡編譯記憶體。泛型編譯錯誤是最晦澀難懂的,輸出一大堆,不知所云。泛型是給庫的設計師用的,而且是開源庫。
uj5u.com熱心網友回復:
這個問題有點兒大,建議看一下《c++ templates》。簡單說泛型其實就是模板編程。
元編程就是一種利用模板編程達到在編譯期實作程式邏輯的一種方式
uj5u.com熱心網友回復:
個人覺得元編程是C++里面最難最深奧的部分。uj5u.com熱心網友回復:
元編程是程式的運行期,泛型是modal吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113106.html
標籤:C++ 語言
上一篇:請教:360攔截QQ訊息 C++
