nullptr用法

首先,nullptr是C++11新标准下引入的一种特殊类型的字面值, 它可以被转换为任意其他的指针类型。其次:nullptr_t的定义看下:typedef decltype(nullptr) nullptr_t;
/*This type can only take one value: nullptr, which when converted to a pointer type takes the proper null pointer value.

Even though nullptr_t it is not a keyword, it identifies a distinct fundamental type: the type of nullptr. As such, it participates in overload resolution as a different type.*/
再者,u=nullptr;是一种特殊的拷贝,利用的是C++11新引入的移动构造函数和移动赋值运算符性质。换言之,这不是拷贝,这是移动。而且移动构造函数/移动赋值函数的第一个参数是一个右值引用。再来看下右值引用的绑定问题,由于解引用操作符生成左值,取地址运算符生成右值,所以指针nullptr是一个右值,可以被绑定到unique_ptr的移动操作构造函数/移动赋值运算符上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值