c++模板元編程一:基本概念

來源:互聯網
上載者:User

標籤:c++

1 基本概念1.1 meta program 元程式

可以用meta program產生object program, 也可以object program作為資料看待,從而組裝出更大的object program 元程式是處理常式的程式,如大家熟悉的編譯器、解譯器、類型檢查器、定理證明器、程式產生器、轉換系統和程式分析器等等

1.2 object program 目標程式

目標程式,又稱為“目的程式”,為來源程式經編譯可直接被電腦啟動並執行機器碼集合,在電腦檔案上以.obj作副檔名-—由語言處理常式(組譯工具,編譯器,解釋程式)將來源程式處理(彙編,編譯,解釋)成與之等價的由機器碼構成的,電腦能夠直接啟動並執行程式,該程式叫目標程式。目標代碼儘管已經是機器指令,但是還不能運行,因為目標程式還沒有解決函數調用問題,需要將各個目標程式與庫函數串連,才能形成完整的可執行程式。

1.3 元編程 meta programming

指的是對元程式的編寫工作

1.4 元語言

編寫元程式的語言

1.5 目標語言

編寫目標程式的語言

1.6 總結

我們用C++語言寫程式, C++語言是一種目標語言,通過編譯器處理後,產生.obj檔案,.obj檔案內部就是目標程式,經過連結器連結後,形成可執行程式。 從DSL的角度來看,元編程就是用一種DSL語言編寫運行,然後獲得目標語言和程式。DSL可以和目標語言不同,也可以相同。如果相同,就是DSL本身是宿主語言的一部分。C++模板元程式設計語言就是這種DSL,天然使用了C++的範本語言,從而產生目標語言。使用C++模板元編程可以進行以下兩種計算:

  1. 數值計算
  2. 類型計算

c++模板元編程一:基本概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.