在C ++ 11中,pass-by-value是一个合理的默认值吗?
在传统的C ++中,将值传递给函数和方法对于大型对象来说是很慢的,并且通常不赞成。相反,C ++程序员倾向于传递引用,这更快,但它引入了围绕所有权的各种复杂问题,特别是围绕内存管理(如果对象是堆分配的)
现在,在C ++ 11中,我们有Rvalue引用和移动构造函数,这意味着可以实现一个大的对象(比如一个std::vector
),它可以通过值传入和传出函数。
那么,这是否意味着默认值应该是传递类型实例的值,例如std::vector
和std::string
?自定义对象怎么样?什么是新的最佳做法?
明月笑刀无情
哆啦的时光机
相关分类