请问该如何把raw pointer 当argument丢给参数是unique_ptr的function呢?
实际情况约如下(太短就不贴其他地方了):
void TestUP (unique_ptr<int*> temp)
{
**temp = 100;
}
int main (void)
{
int a {10};
TestUP (make_unique<int*>(&a));
return 0;
}
上面这个结果Run得出来...
可是make_unique是14的东西,我要使用的环境只支援到11。
而且语意也很奇怪...
我要丢一个东西让function修改,应该是丢指标就够了,却要丢掉指标的指标。
另外有尝试过
unique_ptr<int>(&a)
可是在function里面必须自己release,造成语意很奇怪。
请问有什么办法解决呢?
谢谢~!