C++11新特性之auto和decltype知识点
C++11引入了auto和decltype关键字,使用它们可以在编译期就推导出变量或者表达式的类型,方便开发者编码的同时也简化了代码。 auto {#auto} ============ auto可以让编译器在编译器就推导出变量的类型,看代码: |-----------------|---------------------------------------------...
C++11引入了auto和decltype关键字,使用它们可以在编译期就推导出变量或者表达式的类型,方便开发者编码的同时也简化了代码。 auto {#auto} ============ auto可以让编译器在编译器就推导出变量的类型,看代码: |-----------------|---------------------------------------------...
C++11新增了右值引用,谈右值引用也可以扩展一些相关概念: * 左值 * 右值 * 纯右值 * 将亡值 * 左值引用 * 右值引用 * 移动语义 * 完美转发 * 返回值优化 左值、右值 {#左值、右值} ============== **概念1:** 左值:可以放到等号左边的东西叫左值。 右值:不可以放到等号左边的东西就叫右值。 **概念2:**...
C++11新增了列表初始化的概念。 在C++11中可以直接在变量名后面加上初始化列表来进行对象的初始化。 |---------------------------------------------------|----------------------------------------------------------------------------------...
c++11新增了`std::function`、`std::bind`、`lambda`表达式等封装使函数调用更加方便。 `std::function` {#std-function} =============================== 讲`std::function`前首先需要了解下什么是可调用对象 满足以下条件之一就可称为可调用对象: * 是一个函数指针...
C++11关于模板有一些细节的改进: * 模板的右尖括号 * 模板的别名 * 函数模板的默认模板参数 模板的右尖括号 {#模板的右尖括号} ================== C++11之前是不允许两个右尖括号出现的,会被认为是右移操作符,所以需要中间加个空格进行分割,避免发生编译错误。 模板的别名 {#模板的别名} ============== C++11引入...
c++11关于并发引入了好多新东西,这里按照如下顺序介绍: * std::thread相关 * std::mutex相关 * std::lock相关 * std::atomic相关 * std::call_once相关 * volatile相关 * std::condition_variable相关 * std::future相关 * async相关 std...
C++11中增加了async,如它的名字一样,这个关键字就是用来创建异步操作的,c++11中有个更常用的异步操作,叫做线程thread,那么thread和async有什么区别呢?以及async的优势是什么?应该怎么使用? C++11 使用 std::async创建异步程序 {#C-11-使用-std-async创建异步程序} =========================...
C++11引入了三种智能指针: * std::shared_ptr * std::weak_ptr * std::unique_ptr shared_ptr {#shared-ptr} ======================== shared_ptr使用了引用计数,每一个shared_ptr的拷贝都指向相同的内存,每次拷贝都会触发引用计数+1,每次生命周期结束析构的...
* 1979年 C++ 编程语言的历史可以追溯到 1979 年,当时 Bjarne Stroustrup 为博士学位论文进行了一些开发。在 Stroustrup 可以使用的所有语言中,有一种被称为 Simula 的语言,顾名思义,它可能是一种主要为仿真而设计的语言。Simula 67 语言是 Stroustrup 使用的变体,被认为是支持面向对象编程范例的主要语言。St...
1 C++初识 {#1-C-初识} ================= 1.1 第一个C++程序 {#1-1-第一个C-程序} --------------------------- 编写一个C++程序总共分为4个步骤 * 创建项目 * 创建文件 * 编写代码 * 运行程序 ### 1.1.1 创建项目 {#1-1-1-创建项目} Visual Studio是我们用...