徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

C++11

指数 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%相容於現有標準。.

64 关系: Auto (C++)型別構造器可变参数宏可变参数模板右值引用声明区域头等函数字面常量 (C语言)寫入時複製三法則事件 (同步原语)匿名函数别名 (计算)分配器 (C++)命名空间函数对象值 (電腦科學)倾斜牙签综合症C++C++ Technical Report 1C++/CXC++0xC++14C++17C++异常处理C++程式語言 (書)ClangComplex.hConstexprCtype.h簡單顯示管理器类型推论线程安全生成器 (计算机编程)用户定义字面量監視器 (程序同步化)Decltype顺序点自动变量Fetch-and-addIostreamIota函数JetBrainsMetal (API)Microsoft Visual C++New (C++)NullptrOffsetofPerlString (C++标准库)...SYCLUVa線上解題系統控制反转构造器标准模板库模板 (C++)比特垃圾桶比较并交换比雅尼·斯特劳斯特鲁普泛型指標 (電腦科學)斷言 (程式)无序关联容器 (STL)智能指针 扩展索引 (14 更多) »

Auto (C++)

auto是C++程序设计语言的关键字。自C++11以来,auto关键字用于两种情况:声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符。C++98标准中auto关键字用于自动变量的声明,但由于使用极少且多余,在C++11中已删除这一用法。.

新!!: C++11和Auto (C++) · 查看更多 »

型別構造器

类型构造器也称类型构造子,是把若干已知类型组合成一新类型的手段。可以看作是类型的构造函数。打个比方,如果说普通的函数操作变量并产生新值,那么类型构造器就是操作类型返回新类型。 例如,数组 T 是若干相同类型 T 元素的有序集合,我们说从 T 类型构造出“T 的数组”这一类型的类型构造器是(后缀)、即“加上数组”。.

新!!: C++11和型別構造器 · 查看更多 »

可变参数宏

可变参数宏是C语言与C++语言的函数宏的参数个数可以是0个或多个。这一语言特性由C99引入。C++11也开始支持。.

新!!: C++11和可变参数宏 · 查看更多 »

可变参数模板

可变参数模板是模板编程时,模板参数(template parameter)的个数可变的情形。 已经支持可变参数模板的编程语言有D语言与C++(自C++11标准)。.

新!!: C++11和可变参数模板 · 查看更多 »

右值引用

右值引用(rvalue reference),是C++程序设计语言自C++11标准提出的一类数据类型。用于实现移动语义(move semantic)与完美转发(perfect forwarding)。.

新!!: C++11和右值引用 · 查看更多 »

声明区域

C++语言中,名字的声明区域(declarative region),是指一个名字在程序文本中可能有效的最大的区域,在这个区域中,未受限定的该名字绑定到同一个实体。 例如: 名字j被声明了两次并被使用了两次。第一个被声明的j的声明区域是整个例子程序。第一个j的潜在作用域(potential scope)在这个名字被声明处之后,并持续至程序的末尾。但第一个j的(实际)作用域应排除逗号,与右花括号之间的程序区域。第二个被声明的j(在分号之前的那个j)的声明区域是一对花括号括起来的整个程序区域(也即main函数的函数体),但第二个j的潜在作用域应排除名字i的声明。第2个j的(实际)作用域与它的潜在作用域相同。 由C++11语言标准中提供的上述示例程序及其说明,可以得出结论:名字的声明区域是它可能保持有效的最大的程序结构,如整个编译单元、整个命名空间、一对花括号括起来的整个语句块、整个函数体(甚至包括函数的形参列表)、类定义(包括成员函数的定义)等等。.

新!!: C++11和声明区域 · 查看更多 »

头等函数

头等函数(first-class function)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。, by Michael Lee Scott, section 11.2 "Functional Programming".

新!!: C++11和头等函数 · 查看更多 »

字面常量 (C语言)

字面常量(literal constant),是C程序设计语言与C++语言的词法上的概念(lexical conventions),是指源程序中表示固定值的符号(token)。 下述内容遵从C11与C++11语言标准。.

新!!: C++11和字面常量 (C语言) · 查看更多 »

寫入時複製

寫入時複製(Copy-on-write,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是透明的(transparently)。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(private copy)被建立,因此多个呼叫者只是读取操作时可以共享同一份资源。.

新!!: C++11和寫入時複製 · 查看更多 »

三法則

三法則()在C++裡,它是一個以設計的基本原則而制定的定律。它的要求是,假如类有明顯下列其中一個成員函式,那麼程序员必須寫入其他兩個成員函式到類別內,也就是說下列三個成員函式缺一不可 。.

新!!: C++11和三法則 · 查看更多 »

事件 (同步原语)

事件作为一种同步原语,是计算机科学中的一种同步机制,用来指示等待中的进程特定条件已经变为真。 事件对象一般具有下述操作:.

新!!: C++11和事件 (同步原语) · 查看更多 »

匿名函数

在计算机编程中,匿名函数(anonymous function)是指一类无需定义标识符(函数名)的函数或子程序,普遍存在于多种编程语言中。 1958年LISP首先采用匿名函数,自此之后,越来越多编程语言陆续采用,主流的编程语言如PHP和C++也在不久前采用。.

新!!: C++11和匿名函数 · 查看更多 »

别名 (计算)

别名是指内存中的一个数据位置可以通过程序的多个符号名来访问。因此通过一个名字修改数据意味着所有别名关联的值也改变了。别名使理解、分析、优化程序变得困难。用于分析处理程序中的别名的信息。.

新!!: C++11和别名 (计算) · 查看更多 »

分配器 (C++)

在C++编程中,分配器(allocator)是C++标准库的重要组成部分。C++的库中定义了多种被统称为“容器”的数据结构(如链表、集合等),这些容器的共同特征之一,就是其大小可以在程序的运行时改变;为了实现这一点,进行动态内存分配就显得尤为必要,在此分配器就用于处理容器对内存的分配与释放请求。换句话说,分配器用于封装標準模板庫(STL)容器在内存管理上的低层细节。默认情况下,C++标准库使用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。 分配器最早由作为C++标准模板库(Standard Template Library,简称STL)的一部分发明,其初衷是创造一种能“使库更加灵活,并能独立于底层数据模型的方法”,并允许程序员在库中利用自定义的指针和;但在将标准模板库纳入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处理会带来不可接受的性能损耗,为作折中,标准中对分配器的限制变得更加严格,而有鉴于此,与斯特潘诺夫原先的设想相比,现有标准所描述的分配器可定制程度已大大受限。 虽然分配器的定制有所限制,但在许多情况下,仍需要用到自定义的分配器,而这一般是为封装对不同类型内存空间(如共享内存与已回收内存)的访问方式,或在使用内存池进行内存分配时提高性能而为。除此以外,从内存占用和运行时间的角度看,在频繁进行少量内存分配的程序中,若引入为之专门定制的分配器,也会获益良多。.

新!!: C++11和分配器 (C++) · 查看更多 »

命名空间

命名空间(Namespace,名前空間),也称名字空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中。 例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。 这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隱藏區域標識符的機制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。 在编程语言中,命名空间是对作用域的一种特殊的抽象,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持命名空间。在一些编程语言(例如C++和Python)中,命名空间本身的标识符也属于一个外层的命名空间,也即命名空间可以嵌套,构成一个命名空间树,树根则是无名的全局命名空间。 函数和类的作用域可被視作隱式命名空间,它們和可見性、可訪問性和对象生命周期不可分割的联系在一起。.

新!!: C++11和命名空间 · 查看更多 »

函数对象

函数对象(function object)是一个程序设计的对象允许被当作普通函数来调用。 函数对象与函数指针相比,有两个优点:第一是编译器可以内联执行函数对象的调用;第二是函数对象内部可以保持状态。 函数式程序设计语言还支持闭包,例如,first-class函数支持在其创建时用到的函数外定义的变量的值保持下来,成为一个函数闭包。.

新!!: C++11和函数对象 · 查看更多 »

值 (電腦科學)

在计算机科学中,值(Value)是一无法进一步求值的表达式。例如,表达式“1 + 2”不是一个值,因为它可以被化简为表达式“3”。表达式“3”不能够继续化简,因此它是一个值。表达式既有类型(type)属性,又有值分类(value categories)属性。两种属性彼此独立。也就是说,对每一种类型的表达式,都有各种值分类。 大多数编程语言支持几种常见的值。.

新!!: C++11和值 (電腦科學) · 查看更多 »

倾斜牙签综合症

倾斜牙签综合症(leaning toothpick syndrome,LTS)是指在计算机程序设计中,由于表达式包含了大量的转义字符而使代码变得难以阅读,通常是指反斜线("\")开头的转义字符序列。 Perl语言的官方文档引入了这一术语,用于描述Unix风格的正则表达式中大量的前向斜线。 LTS出现在许多程序设计语言与许多环境中,包括用于匹配统一资源定位符(URI)的模式(Pattern (software)),以及输出被引用文本的程序中,许多自产生程式属于后一类。.

新!!: C++11和倾斜牙签综合症 · 查看更多 »

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++11和C++ · 查看更多 »

C++ Technical Report 1

C++ Technical Report 1 (TR1)(英文)是ISO/IEC TR 19768, C++ Library Extensions(函式庫擴充)的一般名稱。TR1是一份文件,內容提出了對C++標準函式庫的追加項目。這些追加項目包括了正则表达式、智能指针、哈希表、随机数生成器等。TR1自己並非標準,他是一份草稿文件。然而他所提出的項目大多数已成為下次的官方標準(C++11)的一部分。這份文件的目標在於「為擴充的C++標準函式庫建立更為廣泛的現成實作品」。.

新!!: C++11和C++ Technical Report 1 · 查看更多 »

C++/CX

C++/CX (Visual C++ Component Extensions,Visual C++ 组件扩展) 是微软的C++编译器对C++的扩展,使得程序员可以比较方便地编写面向Windows Runtime(WinRT)的程序。这个语言规范引入了一系列语法和类库抽象,以对C++程序员来说比较自然的方式暴露了基于组件对象模型(COM)的WinRT编程范型的接口。 这个语言扩展从C++/CLI借用了语法,但是是面向WinRT和原生码而不是通用语言运行库和托管代码。.

新!!: C++11和C++/CX · 查看更多 »

C++0x

#重定向 C++11.

新!!: C++11和C++0x · 查看更多 »

C++14

C++14是C++的现行标准的非正式名称,正式名称为"International Standard ISO/IEC 14882:2014(E) Programming Language C++"。C++14旨在作为C++11的一个小扩展,主要提供漏洞修复和小的改进。C++14标准的委员会草案(Committee Draft)N3690于2013年5月15日发表。工作草案(Working Draft)N3936已于2014年3月2日完成。最终的投票期结束于2014年8月15日,结果(一致通过)已于8月18日公布。.

新!!: C++11和C++14 · 查看更多 »

C++17

C++17又稱C++1z,是C++的現行標準的非正式名稱,正式名稱為"International Standard ISO/IEC Programming Language C++"。C++17旨在作為大型擴充功能,最終的投票期將於2017年結束。 目前不少著名C++編譯器已支持C++17仍未定案的草案(draft),例如最新的GCC6已支持C++ concept的C++事务型内存(Transactional Memory),Visual Studio與Clang目前都提供了modules。.

新!!: C++11和C++17 · 查看更多 »

C++异常处理

异常处理(exception handling)是C++的一项语言机制,用于在程序能处理异常事件。 异常事件在C++中表示为异常对象(exception object)。异常事件发生时,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的try块,依次匹配同级的catch语句。如果匹配catch语句成功,则在该catch块内处理异常;然后执行当前try...catch...

新!!: C++11和C++异常处理 · 查看更多 »

C++程式語言 (書)

《C++程式語言》(The C++ Programming Language)是第一本介紹C++的書籍,作者是「C++之父」比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup),他是此程式語言的設計者。第一版《C++程式語言》於1985年推出。 由於沒有官方標準,這本書成為了實質標準,引領C++不斷發展。1998年,C++才有第一個國際標準 ISO/IEC 14882:1998: Programming Language C++ 。隨着C++標準化和新函式庫(Library)的出現,本書亦推出了新版本,介紹C++的改變和新功能,以及更正一些誤排。.

新!!: C++11和C++程式語言 (書) · 查看更多 »

Clang

Clang(類似英文單字clang) 是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。它採用了底層虛擬機(LLVM)作為其後端,而且由LLVM2.6開始,一起釋出新版本。它的目標是提供一個GNU編譯器套裝(GCC)的替代品,支援了GNU編譯器大多數的編譯設定以及非官方語言的擴充功能。作者是克里斯·拉特納(Chris Lattner),在蘋果公司的贊助支持下進行開發,而原始碼授權是使用類BSD的伊利诺伊大学厄巴纳-香槟分校開源碼許可。 Clang專案包括Clang前端和Clang靜態分析器等。.

新!!: C++11和Clang · 查看更多 »

Complex.h

complex.h是C標準函数庫中的头文件,提供了复数算术所需要的宏定义与函数声明。.

新!!: C++11和Complex.h · 查看更多 »

Constexpr

constexpr是C++11引入的关键字,用于编译时的常量与常量函数。 声明为constexpr函数的意义是:如果其参数均为合适的编译期常量,则对这个constexpr函数的调用就可用于期望常量表达式的场合(如模板的非类型参数,或枚举常量的值)。如果参数的值在运行期才能确定,或者虽然参数的值是编译期常量,但不匹配这个函数的要求,则对这个函数调用的求值只能在运行期进行。.

新!!: C++11和Constexpr · 查看更多 »

Ctype.h

ctype.h是C標準函数庫中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符、控制字符等等。既支持单字节字符,也支持宽字符。.

新!!: C++11和Ctype.h · 查看更多 »

簡單顯示管理器

单显示管理器(SDDM)是为X Window系统和Wayland提供的一个显示管理器。SDDM使用C++11编写,并可使用QML编写主题。 SDDM是自由及开放源代码软件,依据GNU通用公共许可证的条款发布。.

新!!: C++11和簡單顯示管理器 · 查看更多 »

类型推论

类型推论、型別推斷、或隐含类型,是指编程语言在编译期中能够自动推导出值的数据类型的能力,它是一些强静态类型语言的特性。一般而言,函数式编程语言也具有此特性。自动推断类型的能力让很多编程任务变得容易,让程序员可以忽略类型标注的同时仍然允许类型检查。 具有类型推论的语言有:Rust, Haskell, Cayenne, Clean, ML, OCaml, Epigram, Scala, Nemerle, D, Chrome,Visual Basic 2008和 Boo。计划支持类型推论的有 Fortress, Vala, C# 3.0, C++11和Perl 6。 显式的转换到另一种数据类型叫做“强制”。.

新!!: C++11和类型推论 · 查看更多 »

线程安全

线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。 一般来说,线程安全的函数应该为每个调用它的线程分配专门的空间,来储存需要单独保存的状态(如果需要的话),不依赖于“线程惯性”,把多个线程共享的变量正确对待(如,通知编译器该变量为“易失(volatile)”型,阻止其进行一些不恰当的优化),而且,线程安全的函数一般不应该修改全局对象。 很多C库代码(比如某些strtok的实现,它将“多次调用中需要保持不变的状态”储存在静态变量中,导致不恰当的共享)不是线程安全的,在多线程环境中调用这些函数时,要进行特别的预防措施,或者寻找别的替代方案。.

新!!: C++11和线程安全 · 查看更多 »

生成器 (计算机编程)

生成器是计算机科学中特殊的子程序。实际上,所有生成器都是迭代器。生成器非常类似于返回数组的函数,都是具有参数、可被调用、产生一系列的值。但是生成器不是构造出数组包含所有的值并一次性返回,而是每次产生一个值,因此生成器看起来像函数,但行为像迭代器。 生成器可以用更有表达力的控制流结构实现,如协程或头等計算續體。 生成器,也被称作半协程(semicoroutine),是特殊的、能力更弱的协程,总是在传回一个值时把控制交还给调用者,而不是像协程那样指出另一个协程继续执行。.

新!!: C++11和生成器 (计算机编程) · 查看更多 »

用户定义字面量

户定义字面量(user-defined literal)是C++程序设计语言从C++11标准开始支持的用户定义类型的字面量。.

新!!: C++11和用户定义字面量 · 查看更多 »

監視器 (程序同步化)

-- (Monitors,也称为--) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享資源。這些共享資源一般是硬體裝置或一群變數。管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计。 管程提供了一种机制,线程可以临时放弃互斥访问,等待某些条件得到满足后,重新获得执行权恢复它的互斥访问。 管程是东尼·霍尔 与泊·派克·漢森 提出的,并由泊·派克·漢森首次在并行Pascal中实现。东尼·霍尔证明了這與信号量是等價的。管程在当时也被用于單作業系統环境中的进程間通訊。 在程式語言Concurrent Pascal,Pascal-Plus,Modula-2,Modula-3,Mesa以及Java中都提供這個功能。.

新!!: C++11和監視器 (程序同步化) · 查看更多 »

Decltype

在C++程序设计语言中,decltype作为,用于获取表达式的数据类型。C++11标准引入decltype,主要是为泛型编程而设计,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题。 从语义上说,decltype的设计适合于通用库编写者或编程新手。总体上说,对于变量或函数参数作为表达式,由decltype推导出的类型与源码中的定义可精确匹配。而正如操作符一样,decltype不对操作数求值。.

新!!: C++11和Decltype · 查看更多 »

顺序点

顺序点,也称作序列点,是计算机程序中一些执行点,在该点处之前的求值的所有的副作用已经发生,在它之后的求值的所有副作用仍未开始。在C与C++程序设计语言中,表达式的值依赖于它的子表达式的求值顺序。增加更多的顺序点限制了可能的求值顺序,能保证有一个一致结果。 C++11中,顺序点概念已经被这种方法取代:直接指出一个求值是在另一个求值之前,或者两个求值是无顺序的。无顺序的求值可以重叠进行。.

新!!: C++11和顺序点 · 查看更多 »

自动变量

在计算机编程领域,自动变量(Automatic Variable)指的是局部作用域变量,具体来说即是在控制流进入变量作用域时系统自动为其分配存储空间,并在离开作用域时释放空间的一类变量。在许多程序语言中,自动变量与术语“局部变量”(Local Variable)所指的变量实际上是同一种变量,所以通常情况下“自动变量”与“局部变量”是同义的。.

新!!: C++11和自动变量 · 查看更多 »

Fetch-and-add

fetch-and-add是CPU指令(FAA),对内存位置执行增加一个数量的原子操作。具体内容为: FAA可用于实现互斥锁、信号量。 1991年,证明fetch-and-add具有一个有限的数,能解决不超过两个并发进程的无等待consensus问题。.

新!!: C++11和Fetch-and-add · 查看更多 »

Iostream

iostream是C++中用于数据的流式输入与输出的头文件,屬於C++标准程式库的一部分。 iostream 为 Input/Output Stream 的缩写,即是輸入/輸出流。「流」是一連串從I/O設備讀寫的字符。.

新!!: C++11和Iostream · 查看更多 »

Iota函数

iota 函数是一个计算机语言中的函数,用于产生连续的值。 该函数得名自 APL 语言,其中用来产生从 1 开始的连续数值。.

新!!: C++11和Iota函数 · 查看更多 »

JetBrains

JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄罗斯的圣彼得堡及美国麻州波士頓都设有办公室,該公司最為人所熟知的產品是Java程式語言開發撰寫時所用的整合開發環境:IntelliJ IDEA。 JetBrains成立於2000年,是一家私人持股的公司,該公司的合夥創辦人有:Sergey Dmitriev、Eugene Belyaev及Valentin Kipiatkov。 截至2017年6月,该公司共发布了24款开发工具与及相关产品。.

新!!: C++11和JetBrains · 查看更多 »

Metal (API)

Metal 是一个兼顾图形与计算功能的,面向底层、低开销的硬件加速应用程序接口(API),其类似于将 OpenGL 与 OpenCL 的功能集成到了同一个API上,最初支持它的系统是 iOS 8。Metal 使得 iOS 可以实现其他平台的类似功能,例如 Khronos Group 的跨平台 Vulkan 与 Microsoft Windows 上的 Direct3D 12。 2014年6月2日,Metal 开始支持iOS设备(仅支持Apple A7或更新款處理器的iPhone、iPad);2015年6月8日,Metal 开始支持运行 OS X El Capitan 的Mac设备(僅2012年中或更新款機種)。 Metal也通过引入来进一步提高GPGPU编程的能力。 Metal 使用一种基于C++11的新,其实现借助了 Clang 和 LLVM。 2017年6月5日,Apple於WWDC宣布了Metal的第二个版本,支持macOS High Sierra、iOS 11和tvOS 11。Metal 2不是Metal的獨立API,並且由需要的硬體支援。 Metal 2在Xcode中實現了更高效的分析和調試,加速了機器學習、降低了CPU工作負載、支持macOS上的虛擬實境以及Apple A11處理器的特性。.

新!!: C++11和Metal (API) · 查看更多 »

Microsoft Visual C++

Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微軟公司的C++開發工具,具有集成开发环境,可提供編輯C語言,C++以及C++/CLI等编程語言。VC++整合了便利的除錯工具,特別是整合了微軟Windows视窗操作系统应用程序接口(Windows API)、三维動畫DirectX API,Microsoft.NET框架。目前最新的版本是Microsoft Visual C++ 2017。.

新!!: C++11和Microsoft Visual C++ · 查看更多 »

New (C++)

new是C++程序设计语言中的一种语言结构,用于动态分配内存、并用构造函数初始化分配的内存。 new的使用称为“new运算符表达式”,其内部实现分为两步:.

新!!: C++11和New (C++) · 查看更多 »

Nullptr

nullptr是C++11语言标准用来表示空指针的常量值。 在C语言中,空指针的值表示为#define NULL (void *)0。 在C++语言中,由于对语法的类型检查更为严格,因而空指针的值就不能表示为(void *)0;。例如,空指针的值表示为FILE *fp.

新!!: C++11和Nullptr · 查看更多 »

Offsetof

C语言的offsetof()宏,是定义在stddef.h。用于求出一个struct或union数据类型的给定成员的size_t类型的字节偏移值。offsetof()宏有两个参数,分别是结构名与结构内的成员名。不能声明为C原型。.

新!!: C++11和Offsetof · 查看更多 »

Perl

Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.

新!!: C++11和Perl · 查看更多 »

String (C++标准库)

是C++標準程式庫中的一個头文件,定义了C++标准中的字符串的基本模板类std::basic_string及相关的模板类实例: 其中的string是以char作为模板参数的模板类实例,把字符串的内存管理责任由string负责而不是由编程者负责,大大减轻了C语言风格的字符串的麻烦。 std::basic_string提供了大量的字符串操作函数,如比较、连接、搜索、替换、获得子串等。并可与C语言风格字符串双向转换。std::basic_string属于C++ STL容器类,用户自定义的类也可以作为它的模板参数,因此也适用C++ STL Algorithm库。 string本质上是以字符作为元素的vector特化版本;不存在0字符结尾这个概念,能装入'\0'这种数据。.

新!!: C++11和String (C++标准库) · 查看更多 »

SYCL

SYCL是一个面向OpenCL的高层次编程模型,一种单一源码特定领域嵌入式语言(DSEL),目的是提高编程效率。SYCL 1.2基于纯C++11,SYCL 2.2基于纯C++14。该标准由Khronos Group开发,2014年3月宣布。.

新!!: C++11和SYCL · 查看更多 »

UVa線上解題系統

UVa線上解題系統是由西班牙瓦雅多利大學開發的自動化線上程式評判系統,包含了超過4300個程式設計問題並且開放給所有人註冊參與解題,目前有超過10萬名使用者。使用者可以使用C(C89)、C++(C++98)、Pascal、Java、C++11或是Python撰寫程式以解決題目中提出的問題,其中Java選項在2001年開放,C++11選項在2014年開放,Python選項在2016年開放。 UVa同時也舉辦程式設計競賽,在競賽環境中使用者必須在限制的時間之內解決一組題目。.

新!!: C++11和UVa線上解題系統 · 查看更多 »

控制反转

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。.

新!!: C++11和控制反转 · 查看更多 »

构造器

在类别基础的面向对象程序设计中,构造器(英语: Constructor;别称:构造方法、构造函数、建构子)是一个-zh-hans:类;zh-hant:類別;---用于建立对象的特殊子程序。它能初始化一个新建的对象,并时常会接受参数用以设定变量。 构造器跟一般的实例方法十分相似;但是与其它方法不同,构造器没有,不会被继承,且不会有范围修饰符。构造器的函数名称一般与它所属的-zh-hans:类;zh-hant:類別;-的名称相同。 它承担着初始化对象数据成员并建立类不变象的任务;在类不变象无效的时候它会失败。一个正确编写的构造器会使它生成的对象保持在一个有效状态。不可变物件必须在构造器内完成所有初始化。 多数编程语言允许构造器重载 - 一个--被允许拥有多个接受不同种类的构造器同时存在。一些编程语言允许某些特殊种类的构造器。使用单个类来具体地建立和返回新实例的构造器,时常被抽象为工厂方法 - 一种同样用来建立新对象,但会同时使用多个--,或者一些诸如对象池的分配方案来完成这一过程的子程序。.

新!!: C++11和构造器 · 查看更多 »

标准模板库

标准模板库(英文:Standard Template Library,缩写:STL),是一个C++软件库,大量影響了C++标准程序库但並非是其的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。 模板是C++程序设计语言中的一个重要特征,而标准模板库正是基于此特征。标准模板库使得C++编程语言在有了同Java一样强大的类库的同时,保有了更大的可扩展性。.

新!!: C++11和标准模板库 · 查看更多 »

模板 (C++)

模板(Template)指C++程序设计语言中的函数模板与类模板,是一种参数化类型机制,大体对应于java和C#中的泛型,但也有一些功能上的显著差异(C++模板支持后两者没有明确对应的模板模板参数和模板非类型参数,但不支持Java的通配符以及C#的泛型类型约束)。模板是C++的泛型编程中不可缺少的一部分。 模板是C++程序员绝佳的武器,特別是結合了多重继承与运算符重载之后。C++的标准函数库提供的许多有用的函数大多結合了模板的概念,如STL以及iostream。.

新!!: C++11和模板 (C++) · 查看更多 »

比特垃圾桶

比特垃圾桶(bit bucket)或比特桶是计算机行话,指丢失的计算机数据所在的地方。如果数据因传输错误或者系统崩溃丢失,或者其他在任何意义上以任何形式而丢失,就可以说数据被丢进了比特垃圾桶,一个存储着所有丢失地计算机数据的神秘地点,例如: 比特垃圾桶的原始含义是一个电传打字机或者IBM打孔卡片机器上的盒子,用来收集来自纸带或者打孔卡片的纸屑。随后变为了一个改变为形容一切无用数据所去地点的术语,这就是空设备,一个计算机中很有用的概念。 有时,这样的设备也戏仿八十年代一次写入多次读取(英语:Write Once Read Many,缩写:WORM)的磁光碟而被称为“一次写入永不读取”(英语:Write Once Read Never,缩写:WORN)设备。在Signetics公司1972年一篇玩笑数据手册中,一次写入永不读取设备随先进不出队列和只写存储器而一同被提出。在1988年愚人节出版的《Compute!》杂志中,雅达利BASIC语言的作者Bill Wilknson则披露,雅达利在Atari 800系列计算机的操作系统中,作为程序彩蛋实现了一次写入永不读取设备。 在编程语言中,这个术语则指一种不会被诸如中央处理器或内存使用,而丢弃向其写入的一些数据的比特流。例如,在.NET框架中是,则是System.IO.Stream.Null。.

新!!: C++11和比特垃圾桶 · 查看更多 »

比较并交换

比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。 该操作通过将内存中的值与指定数据进行比较,当数值一样时将内存中的数据替换为新的值。.

新!!: C++11和比较并交换 · 查看更多 »

比雅尼·斯特劳斯特鲁普

比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup,,),生于丹麦奥胡斯郡,计算机科学家。他以创造C++编程语言而闻名,被称为“C++之父”。 用斯特劳斯特鲁普他本人的话来说,自己“发明了C++,写下了它的早期定义并做出了首个--……选择制定了C++的设计标准,设计了C++主要的辅助支持环境,而且负责处理C++标准委员会的扩展提案。”他还写了一本《C++程序设计语言》,它被许多人认为是C++的范本经典,目前是第四版(于2013年5月19日出版),最新版中囊括了C++11所引进的一些新特性。 斯特劳斯特鲁普于1975年获得丹麦奥胡斯大学的数学和计算机科学硕士学位,又于1979年获得英国剑桥大学的计算机科学博士学位。从贝尔实验室大规模编程(Large-scale Programming)研究部门设立至2002年晚些时候,他一直担任那里的负责人。2002年至2014年間,他在德州農工大學工学院擔任資訊科學教授一职。2014年1月起,在紐約市的摩根史丹利技術部門擔任董事總經理(Managing Director),並於哥倫比亞大學資訊科學系擔任客座教授。.

新!!: C++11和比雅尼·斯特劳斯特鲁普 · 查看更多 »

泛型

泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada、Delphi、Eiffel、Java、C#、F#、Swift 和 Visual Basic.NET 称之为泛型(generics);ML、Scala 和 Haskell 称之为参数多态(parametric polymorphism);C++ 和 D称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type)。.

新!!: C++11和泛型 · 查看更多 »

指標 (電腦科學)

在计算机科学中,指標(Pointer),是程式語言中的一类数据类型及其物件或變數,用來表示或儲存一個記憶體位址,這個位址的值直接指向(points to)存在该地址的对象的值。 指標參考(reference)了記憶體中一個位址。通過被稱為指標反參考(dereferencing)的動作,可以取出在那個位址中儲存的值。保存在指標指向的位址中的值,可能代表另一個變數、結構、物件或函數。但是從指標值是無法得知它所參照的記憶體中儲存了什麼資料型別的資訊。可以打个比方,假設將電腦記憶體當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。可做一类比以增强对指针的理解:整形(integral)也是一类数据类型及其物件或變數,可定义具体的数据类型如短整形(short)、长整形(long)、超长整形(long long)、无符号整形(unsigned)等等;也可以用于称呼整形值、整形对象、整形变量等。又如,一个浮点指针(float *),可称作指向了一个浮点类型的对象。 在高級語言中,指標有效的取代了在低階語言(如匯編語言與機器碼)直接使用内存地址。但它可能只適用於合法位址之中。因為指標更貼近硬體,編譯器能夠很容易的將指標翻譯為機械碼,這使指標操作時的負擔較少,因此能夠提高程式的運作速度。 使用指標能夠簡化許多資料結構的實作,例如在遍歷字串,查取表格,控制表格及樹狀結構上。對指標進行複製,之後再解參照指標以取出資料,無論在時間或空間上,都比直接複製及存取資料本身來的經濟快速。指標表示法較為直覺,使程式的表達更為簡潔,同時也能夠提供動態機制來建立新的節點。 在程序編程(procedural programming)中,指標也被用來保存系統呼叫流程,以及動態連結資料庫(DLL)的進入點位址。在物件導向編程中,使用函數指標(Function pointer)來綁定方法(method),常見於虛擬方法表(Virtual method table)中。 但是指標本身也存在一些可被滥用之处,在存取某個資料結構時,可能會超出可用範圍,使軟體或作業系統出現異常,嚴重時可造成當機。利用指標去存取或修改非合法可取用的資料,也可能造成安全性問題。为此,C与C++语言规定指针类型为强类型,即指针值不仅是一个内存地址,同时它的数据类型说明了存在这个地址可以安全访问的地址的范围,例如,float*可以访问4个字节的内存空间,double*可以访问8个字节的内存空间。 許多程式語言中都支援某種形式的指標,最著名的是C語言,但是有些程式語言對指標的運用採取比較嚴格的限制。因為指標的機制比較簡單,其功能可以被集中重新實作成更抽象化的參照(reference)資料形別,如Java一般避免用指针,改為使用參照。.

新!!: C++11和指標 (電腦科學) · 查看更多 »

斷言 (程式)

在程式設計中,斷言(assertion)是一種放在程式中的一階邏輯(如一個結果為真或是假的邏輯判斷式),目的是為了標示與驗證程式開發者預期的結果-當程式執行到斷言的位置時,對應的斷言應該為真。若斷言不為真時,程式會中止執行,並給出錯誤訊息。 例如,以下的程式包括二個斷言: x.

新!!: C++11和斷言 (程式) · 查看更多 »

无序关联容器 (STL)

C++程序设计语言中,unordered_map、unordered_multimap、unordered_set、unordered_multiset是标准模板库(STL)提供的一类无序关联容器(unordered associative containers)。是通过哈希表实现的数据结构。无序是指元素的名字(或者键值)的存储是无序的;这与用平衡二叉树实现的元素名字是有序存储的“关联容器”是相对概念。.

新!!: C++11和无序关联容器 (STL) · 查看更多 »

智能指针

智能指针(Smart pointer)是一種抽象的資料類型。在程式設計中,它通常是經由类模板來實作,藉由模板來達成泛型,藉由類別的解構函數來達成自動釋放指標所指向的記憶體或物件。.

新!!: C++11和智能指针 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »