假设我有这个结构
struct MyStruct {
static MyStruct Create(int x) {
return { x*2, x>3 };
}
MyStruct(const MyStruct& c) = delete; // no copy c'tor
private:
MyStruct(int a_, bool b_) : a(a_), b(b_) {} // private c'tor -- can't use new
const int a;
const bool b;
};
编辑:我删除了复制构造函数。这是我在我的代码库中没有复制 c'tors 的一些类的简化示例。
我可以像这样在堆栈上获取一个实例:
int main() {
auto foo = MyStruct::Create(2);
return 0;
}
但是假设我需要一个指针(或者unique_ptr
很好),并且我无法更改 的实现MyStruct
,我该怎么做?