目录
基於原則設計
基於原則設計(Policy-Based Class Design)又名policy-based class design 或 policy-based programming, 是一種基於C++電腦程式設計規範,以原則(Policy)為基礎,並結合C++的模板超編程(template metaprogramming)。policy-based首見於 Andrei Alexandrescu 出版的 《Modern C++ Design》 一書以及他在C/C++ Users Journal雜誌專欄 Generic 。.
查看 模板超編程和基於原則設計
奇异递归模板模式
奇异递归模板模式(curiously recurring template pattern,CRTP)是C++模板编程时的一种惯用法(idiom):把派生类作为基类的模板参数。更一般地被称作F-bound polymorphism,是一类。.
Boost C++ Libraries
Boost C++ 函式庫(Libraries)是一組擴充C++功能的經過同行評審(Peer-reviewed)且開放源碼程式庫。大多數的函式為了能夠以開放源碼、封閉專案的方式運作,而授權於Boost軟體授權條款(Boost Software License)之下。許多Boost的開發人員是來自C++標準委員會,而部份的Boost函式庫成為C++的TR1標準之一。 為了要確保函式庫的效率與彈性,Boost廣泛的使用模板(template)功能。而它是針對各式領域的C++使用者與應用領域(Application Domain)上,包含的函式庫類別從像這種類通用函式庫,到像是檔案系統的作業系統抽象層,甚至能夠利用Boost來開發額外的函式庫或是給進階的C++使用者利用,像是。.
C++
C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.
查看 模板超編程和C++
C++11
C++11,先前被稱作C++0x,即ISO/IEC 14882:2011,是C++程式語言的一个標準。它取代第二版標準ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公開於1998年,第二版於2003年更新,分别通稱C++98以及C++03,两者差异很小),且已被C++14取代。相比于C++03,C++11標準包含核心語言的新機能,而且擴展C++標準程式庫,併入了大部分的C++ Technical Report 1程式庫(數學的特殊函式除外)。 ISO/IEC JTC1/SC22/WG21 C++標準委員會計劃在2010年8月之前完成對最終委員會草案的投票,以及於2011年3月召開的標準會議完成國際標準的最終草案。然而,WG21預期ISO將要花費六個月到一年的時間才能正式發佈新的C++標準。為了能夠如期完成,委員會決定致力於直至2006年為止的提案,忽略新的提案。最终于2011年8月12日公布,并于2011年9月出版。 2012年2月28日的國際標準草案是最接近于C++11标准的草案,差异仅有编辑上的修正。 像C++這樣的程式語言,透過一種演化的的過程來發展其定義。這個過程不可避免地將引發與現有程式碼的相容問題,在C++的發展過程中偶爾會發生。不過根據比雅尼·斯特劳斯特鲁普(C++的創始人並且是委員會的一員)表示,新的標準將幾乎100%相容於現有標準。.
查看 模板超編程和C++11
TMP
TMP可以是下列意思:.
查看 模板超編程和TMP
模板
--(,又譯作「範本」)通常指具有固定内容、可构建多个不同实例的可重用样板,也可以指:.
查看 模板超編程和模板
斷言 (程式)
在程式設計中,斷言(assertion)是一種放在程式中的一階邏輯(如一個結果為真或是假的邏輯判斷式),目的是為了標示與驗證程式開發者預期的結果-當程式執行到斷言的位置時,對應的斷言應該為真。若斷言不為真時,程式會中止執行,並給出錯誤訊息。 例如,以下的程式包括二個斷言: x.