相关疑难解决方法(0)

我们可以通过函数的值返回具有已删除/私有复制/移动构造函数的对象吗?

在C++ 03中,不可能通过值返回具有私有非定义复制构造函数的类的对象:

struct A { A(int x) { ... } private: A(A const&); };

A f() {
  return A(10); // error!
  return 10;    // error too!
}
Run Code Online (Sandbox Code Playgroud)

我想知道,这个限制是否在C++ 11中解除了,是否可以编写具有类类型返回类型的函数,而没有用于复制或移动的构造函数?我记得允许函数的调用者使用新返回的对象可能很有用,但是他们无法复制值并将其存储在某处.

c++ copy-constructor c++11

16
推荐指数
3
解决办法
2787
查看次数

标签 统计

c++ ×1

c++11 ×1

copy-constructor ×1