8 关系: 右值引用,临终值,值分类,C++,編譯器,纯右值,模板 (C++),模板的模板参数。
右值引用
右值引用(rvalue reference),是C++程序设计语言自C++11标准提出的一类数据类型。用于实现移动语义(move semantic)与完美转发(perfect forwarding)。.
新!!: 模板参数推导和右值引用 · 查看更多 »
临终值
#重定向 值 (電腦科學).
新!!: 模板参数推导和临终值 · 查看更多 »
值分类
#重定向 值 (電腦科學).
新!!: 模板参数推导和值分类 · 查看更多 »
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++ · 查看更多 »
編譯器
编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.
新!!: 模板参数推导和編譯器 · 查看更多 »
纯右值
#重定向 值 (電腦科學).
新!!: 模板参数推导和纯右值 · 查看更多 »
模板 (C++)
模板(Template)指C++程序设计语言中的函数模板与类模板,是一种参数化类型机制,大体对应于java和C#中的泛型,但也有一些功能上的显著差异(C++模板支持后两者没有明确对应的模板模板参数和模板非类型参数,但不支持Java的通配符以及C#的泛型类型约束)。模板是C++的泛型编程中不可缺少的一部分。 模板是C++程序员绝佳的武器,特別是結合了多重继承与运算符重载之后。C++的标准函数库提供的许多有用的函数大多結合了模板的概念,如STL以及iostream。.
新!!: 模板参数推导和模板 (C++) · 查看更多 »
模板的模板参数
模板的模板参数(template template parameter)是指C++语言程序设计中,一个模板的参数是模板类型。只有类模板允许其模板参数是模板类型;函数模板不允许具有这样的模板参数。 模板的模板参数可以有默认值。例如: 模板的模板参数,其实参应当是类模板名字或者别名模板(alias template)。当模板的模板参数做“形参实参结合”时,仅考虑把实参的基本(即未特化)类模板与模板的模板形参做匹配;不考虑实参的偏特化类模板,即使偏特化后的参数列表与模板的模板形参匹配得上。 例如: 当模板的模板参数被实例化时,考虑采用该模板参数的偏特化版本。如果在实例化之处该偏特化版本仍不可见,且如果它是可见的则应该当采用,这时该程序为病态。 例如: 当一个模板的模板形参(称作P)与一个作为实参的模板(称作A)匹配时, 要求P与A各自的模板形参列表的对应成员满足:.
新!!: 模板参数推导和模板的模板参数 · 查看更多 »