随笔分类 - C++ 2.0新特性
包括c++11和c++14的新特性,分为语言和标准库两个部分
摘要:一、概念介绍 unique_ptr它是一种在异常发生时可帮助避免资源泄露的smart pointer,实现了独占式拥有的概念,意味着它可确保一个对象和其他相应资源在同一时间只被一个pointer拥有,一旦拥有者被销毁或变成空或开始拥有另一个对象,那么先前拥有的那个对象就会被销毁,其任何相应资源亦会被
阅读全文
摘要:一、weak_ptr出现的意义 上一节提到过shared_ptr,它会自动释放“不再需要使用的对象”的相应的资源,但是它不是万能的,在某些时候(比如说循环引用),它会显得力不从心,这就是weak_ptr出现的意义; 1.1 weak_ptr 使用特性 weak_ptr也是一个模板,只提供能接受一个s
阅读全文
摘要:Smart Pointer(智能指针)指的是一类指针,并不是单一某一个指针,它能知道自己被引用的个数以至于在最后一个引用消失时销毁它指向的对象,本文主要介绍C++2.0提供的新东西 一、Smart Pointer分类 C++2.0提供了两大类型的智能指针,该模块都被定义于头文件<memory>: 二
阅读全文
摘要:一、Rvalue_reference(右值引用)和move语义 1、左右值概念区分 左值:表达式结束后依然存在的对象,我们也叫做变量; 右值:表达式结束后就不存在的临时对象。 2、判断左值和右值 能对表达式取地址的是左值,否则就是右值 左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式
阅读全文
摘要:一、关键字decltype 引入新关键字decltype可以让编译器找出表达式的类型,为了区别typeof,以下做一个概念区分: typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型,非常依赖平台已过时,由decltype代替;理解为:我们根据typeof()括号里面的变量,自动识
阅读全文
摘要:一、=default,=delete 1、首先我们要回顾一下类默认函数的概念: C++中,当我们设计与编写一个类时,若不显著申明,则类会默认为我们提供如下几个函数: (1)构造函数(A())、(2)析构函数(~A())、(3)拷贝构造函数(A(A&))、(4)拷贝赋值函数(A& operator=(
阅读全文
摘要:一、一致性初始化(uniform initialization) 之前初始化时存在多个版本,让使用者使用时比较混乱,现在提供一种万用的初始化方法,就是使用大括号。 原理解析:当编译器看到大括号包起来的东西时,会生成一个initializer_list<T>(initializer_list它其实是关
阅读全文
摘要:一、新特性介绍 2.0新特性包含了C++11和C++14的部分 1.2 启用测试c++11功能 C++ 标准特定版本的支持,/Zc:__cplusplus 编译器选项启用 __cplusplus 预处理器宏以针对最新的 C++ 语言标准支持报告更新的值。 默认情况下,Visual Studio 始终
阅读全文

浙公网安备 33010602011771号