您的位置:首页 > 编程语言 > C语言/C++

c++ 11 新特性学习

2017-10-08 10:31 288 查看

lamda表达式

匿名函数对象 ,也叫闭包

语法:

[capture](params) -> ret {body}
[capture](params){body}
[capture]{body}


decltype

可以得到括号内表达式的类型,方便变量定义,如果在定义函数指针时。

decltype(&myfunc) pfunc = 0;
typedef decltype(&A::func) type;


统一用{}初始化

delete 和 default

在函数声明的后面加上
= delete
,编译器不会产生这个函数的代码,而加上
=default
,编译器会产生一个默认的。比如,当想让一个类禁止拷贝操作时,delete就很有用。当自己定义了构造函数,但又想编译器生成一个默认的时,default也很有用。

nullptr

新标准中请用nullptr代替NULL

右值引用和move

请看这篇文章:

右值引用与转移语义

线程库

//Todo:c++11多线程另开文章讲解

智能指针

shared_ptr:实现了引用计数,当引用计数为0时,才释放对象

unique_ptr:同一时刻,只能有一个指针指向该对象。因此,它实现的是移动语义,而不是拷贝语义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++11