首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用std::原子的方法时,load()是否隐式调用?

在使用std::原子的方法时,load()是否隐式调用?
EN

Stack Overflow用户
提问于 2017-05-20 02:01:35
回答 1查看 236关注 0票数 2

我注意到,至少从表面上看,最后一行代码似乎是等价的:

代码语言:javascript
复制
std::atomic<int*> a;
a.store(new int{11});
std::cout << *a.load() << "\n";
std::cout << *a << "\n";

看来,存储在指针上的原子包装器中的值可以通过直接调用dereference操作符或加载指针,然后调用操作符来访问。

这两者有什么区别吗?dereference操作符的使用是否隐式地调用load()?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-20 02:26:13

a对其进行operator int*()调用,然后将间接运算符应用于指针。转换函数与调用load相同,因此它们几乎相同。

唯一的区别是,如果类型是用户定义的,因为它会消耗一个用户定义的隐式转换。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44081195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档