1、lambda
int x=0;
[=]()mutable throw()->void{x=x+1;printf("[=] x+1=%d\r\n",x);}();
printf("x=%d\r\n",x); //0
[&]()mutable throw()->void{x=x+1;printf("[&] x+1=%d\r\n",x);}();
printf("x=%d\r\n",x); //1
x=0;
[=](int y)mutable throw()->void{y=y+1;printf("[=] y+1=%d\r\n",y);}(x);
printf("x=%d\r\n",x); //0
[&](int y)mutable throw()->void{y=y+1;printf("[&] y+1=%d\r\n",y);}(x);
printf("x=%d\r\n",x); //0
x=0;
[=](int &y)mutable throw()->void{y=y+1;printf("[=] y+1=%d\r\n",y);}(x);
printf("x=%d\r\n",x); //1
[&](int &y)mutable throw()->void{y=y+1;printf("[&] y+1=%d\r\n",y);}(x);
printf("x=%d\r\n",x); //2
x=0;
auto f=[&](int x)mutable throw()->void{int y=x;x=x+1;printf("[&] %d+1=%d\r\n",y,x);};
f(2);
printf("x=%d\r\n",x); //0
2、右值引用
http://www.cnblogs.com/lebronjames/p/3614773.html
3、智能指针
http://my.oschina.net/hevakelcj/blog/465978
http://jingyan.baidu.com/article/9f7e7ec0b785ae6f281554f6.html
4、变长参数模板
5、std::atomic的使用