У меня есть unique_ptr массива чисел с плавающей точкой, который я хотел бы изменить на unique_ptr массива uint8_t в своей функции. Другими словами, unique_ptr<float[]>
-> unique_ptr<uint8_t[]>
.
Это то, что я пробовал
void my_function(std::unique_ptr<float*> data) {
std::unique_ptr<uint8_t*> converted_data(reinterpret_cast<uint8_t*>(data.release()));
// ...
// Processing converted_data ...
}
Поскольку я получаю эту ошибку: no matching constructor for initialization of 'std::unique_ptr<uint8_t *>'
, мне было интересно, возможно ли достичь этой цели без копирования данных.