Почему `unique_ptr <QByteArray>` не ухудшается до `QByteArray *`?
У меня есть следующий код:
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()
, но кажется, что это не нужно.