我有以下代码:
msg_buf_ptr = std::make_unique<QByteArray>();
return QDataStream{msg_buf_ptr, QIODevice::WriteOnly};
我收到以下错误:
no known conversion for argument 1 from ‘std::unique_ptr<QByteArray>’ to ‘QByteArray*’
但为什么?当作为参数传递给采用指针的函数时,我认为unique_ptr
并shared_ptr
自动降级为原始指针。如果不是,为什么不呢?如果他们(通常)这样做,为什么在这种情况下会失败QByteArray
?
我可以显式调用msg_buf_ptr.get()
,但这似乎是不必要的。