Por que o `unique_ptr <QByteArray>` não é degradado para o `QByteArray *`?
Eu tenho o seguinte código:
msg_buf_ptr = std::make_unique<QByteArray>();
return QDataStream{msg_buf_ptr, QIODevice::WriteOnly};
Eu estou recebendo o seguinte erro:
no known conversion for argument 1 from ‘std::unique_ptr<QByteArray>’ to ‘QByteArray*’
Mas por que? eu penseiunique_ptr
eshared_ptr
degradam automaticamente para ponteiros brutos quando passados como argumentos para funções que recebem ponteiros. Se não, por que não? Se eles (geralmente) o fazem, por que isso falha no caso deQByteArray
?
Eu poderia ligar explicitamentemsg_buf_ptr.get()
, mas isso parece ser desnecessário.