gpt4 book ai didi

c++ - 从智能指针获取原始指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:10 25 4
gpt4 key购买 nike

如果这是重复的,我们深表歉意。希望不是。我搜索了一长串问题,但他们似乎都没有真正解释它。

这里是:在下面

int main(int,char**){
auto a = make_unique<std::string>("Hello World");

// do stuff with either &*a or a.get()

return 0;
}

&*aa.get() 有区别吗?我知道它们都返回原始指针值(除非 operator& 被重载),但是选择一个比另一个有任何运行时优势吗?

最佳答案

&*a 如果指针为 nullptr,则为未定义行为。您可以了解有关未定义行为的更多信息 here .

在所有其他情况下,我希望这两种解决方案完全相同。我更愿意使用get(),因为这是每个人都理解的直接方式。

来自 C++ 标准:

20.9.1.2.4 unique_ptr 观察者 [unique.ptr.single.observers]

typename add_lvalue_reference::type operator*() const;
1 要求:get() != nullptr.
2 返回:*get()。

关于c++ - 从智能指针获取原始指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36547396/

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