Вы присваиваете объект std::unique_ptr
<wstring>
переменной типа wstring
, которая недопустима.Если вы хотите присвоить значение pwszBuffer
переменной типа wstring
, вы должны получить значение unique_ptr
и затем присвоить его переменной.
Вы можете получить значениеstd::unique_ptr
путем вызова оператора *
:
sBase64 = *pwszBuffer;
Редактировать: Если вы хотите передать std::unique_ptr
в функцию, у вас есть два пути:
- Передайте его по ссылке:
void func(std::unique_ptr<std::wstring>& input_ptr) {
// Do something...
}
и затем используйте его просто:
std::unique_ptr<std::wstring> function_input;
func(function_input);
Или 2. Если вы хотите передать его позначение, переместите его:
void func(std::unique_ptr<std::wstring>&
input_ptr) {
// Do something...
}
, а затем передайте его с std::move
:
std::unique_ptr<std::wstring> function_input;
func(std::move(function_input));
Вы должны знать, что в этом случае после перемещения function_input
, он ничего не имеет и держит nullptr
, и вы не должны использовать из func
.
связанных