pcc++ 先行編譯語言(編輯中)

來源:互聯網
上載者:User

pcc++先行編譯語言( c++ pre-compilation language ) ,是一種面向類的、存在於先行編譯期的解釋語言。專門用來產生c++代碼。
先行編譯期語言,大大地提高了程式的複用性,提高了運行時效率。
pc++包括宏機制和模板機制。

c++ 編譯期編程工具:

template 編譯器整數計算 typedefs

1  templates 更明確地是指 template speciclization(模板特化)--提供編譯期間的 if 敘述。一如先前見過的length ,特化版本能夠在 typelists和其它型別之間形成差異。
2 integer calculations  提供真實的數值計算能力。用以從類轉化為數值。所有的編譯期數值都是不可變的。一旦你為它定義了一個整數常數,例如一個枚舉值,就不能再改變它。
3 typedefs 用來引進“有名類型常數( named type constants  ) 它們是定義之後就被凍結。
4 遞迴。對應於c++ 語言中的函數。

類型識別機制
sizeof()
繼承

pcc++的繼承表現通過遞迴來實現。代碼的形式類似c++的重載。
derived to-base 類型轉換通過模板偏特化來實現。


 
1 、最簡單的pcc++

在矩陣轉置(matrix inversion)的運算中,通常需要定義兩個大小相同而維數交換的數組:

    char original[3][2];
    char target[2][3];

一旦original維數發生變化,target的維數也需要修改。使用sizeof()可使代碼錶現出更好的適應性:        char original[3][2];
    char target[ sizeof(a) ];

sizeof()有驚人的威力,你可以把sizeof用在任何錶達式身上。sizeof()在編譯直接
傳回運算式結果的大小。sizeof()可以感知重載( overloading )、模板具現( template instantiation
)、 轉換規則( conversion rules ),或任何可發生於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.