取消编译优化选项
-fno-elide-constructors
: 优化返回值。函数返回对象的时候,可以省略函数内 return 的那次复制,以及调用函数 “=” 的那次复制。
-std=c++0x
。
参考:
【C++踩坑】说说g++的-fno-elide-constructors参数
https://blog.csdn.net/XiyouLinux_Kangyijie/article/details/78939291
C++11移动构造函数详解
http://c.biancheng.net/view/7847.html
C++11 move()函数:将左值强制转换为右值
http://c.biancheng.net/view/7863.html
shared_ptr 释放数组,需要指定函数,可以使用 default_delete 模板类,也可以自定义
//指定 default_delete 作为释放规则
std::shared_ptr<int> p6(new int[10], std::default_delete<int[]>());
//自定义释放规则
void deleteInt(int*p) {
delete []p;
}
//初始化智能指针,并自定义释放规则
std::shared_ptr<int> p7(new int[10], deleteInt);
参考:
C++11 shared_ptr智能指针(超级详细)
http://c.biancheng.net/view/7898.html