以下幻灯片对比了#34;旧学校"和#34;现代" C ++。 http://klmr.me/slides/modern-cpp.pdf
而不是写
huge_object* build_new_object() {
huge_object* ret = new huge_object;
…
return ret;
}
他们建议写
huge_object build_new_object() {
huge_object ret;
…
return ret;
}
我知道第一个代码段很糟糕,因为我们必须记住删除huge_object,并且它不是异常安全的。
但是,第二个片段的缺点是否会导致昂贵的复制电话?不会通过智能指针返回比按值返回要好得多吗?