簡體   English   中英

取消引用復制 unique_ptr 的值

[英]Dereferencing a copying the value of a unique_ptr

我有一個函數,它被賦予一個 unique_ptr 給一個字符串。 我想復制該值是 lambdas 並使用它來調用采用 std::string 的函數。 我在下面做的是正確的方法:

void someFunc(std::unique_ptr<std::string> id) {
    const std::string idStr = *id;
    stream.subscribe([=](auto arg1) { arg1.invoke(idStr); });
}

我想要做的只是將字符串復制到新位置。 那時不要關心 id unique_ptr 。 我發現這個討論似乎表明我可以執行以下操作:

std::string idStr = std::move(id);

但是,這實際上對我不起作用。 它因“沒有可行的轉換”錯誤而失敗。

我有一個函數,它被賦予一個 unique_ptr 給一個字符串。 我想復制那個值

void someFunc(std::unique_ptr<std::string> id) { const std::string idStr = *id;

我想要做的只是將字符串復制到新位置。

這是復制指向字符串的正確方法,是的。

...我可以做到以下幾點:

 std::string idStr = std::move(id);

那是畸形的。 你不能這樣做。 鏈接問題中的示例沒有這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM