gpt4 book ai didi

c++ - 从取消引用的指针返回原始指针

转载 作者:行者123 更新时间:2023-11-28 01:53:47 25 4
gpt4 key购买 nike

auto &element = *std::make_unique<Source_Element>();
auto n = sfElements.size();
element.setIndex(n);
element.setCurve(curve);

sfElements.push_back(std::move(*element)); // -> this doesn't work

我试过了 auto element = std::make_unique<Source_Element>();然后,sfElements.push_back(std::move(element));它工作得很好

取消引用唯一指针会导致获取 Source_Element 类。然后它进入元素值。但我想知道无论如何都可以从中获取唯一指针的原始指针取消引用的指针(这是 Source_Element 类)就像我在上面写的代码一样

最佳答案

不,没有办法。

对于 C++ 中的任何对象,可能有任意数量的指针指向它(包括那些被智能指针包装的指针),但对象本身不会自动知道它们。指针是单向的。

也就是说,如果您取消引用 std::unique_ptr<T>获取底层T , 然后是 T本身将不知道它来自哪里。


您的代码还包含一些错误,最值得注意的是 auto &element = *std::make_unique<Source_Element>();没有意义,因为您尝试创建对临时对象的引用。

关于c++ - 从取消引用的指针返回原始指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com