Почему `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(), но кажется, что это не нужно.

Ответы на вопрос(0)

Ваш ответ на вопрос