如果 C++ 的运算符重载; 类我如何使用默认运算符来代替?
_com_ptr_ 有一个重载的运算符&()副作用。 如果我有一个变量:
_com_ptr_t<Interface> variable;
如何在不调用重载运算符并触发副作用的情况下检索其地址(_com_ptr_t
_com_ptr_ has an overloaded operator&() with a side effect. If I have a variable:
_com_ptr_t<Interface> variable;
How could I retrieve its address (_com_ptr_t<Interface>* pointer) without calling the overloaded operator and triggering the side effect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在 ISO 会议上看到过这个案例,因为它破坏了一些 offsetof() 宏实现 (LWG 273)。 解决方案:
&reinterpret_cast(变量)
I've seen this case pop up in an ISO meeting as it broke some offsetof() macro implementations (LWG 273). The solution:
&reinterpret_cast<unsigned char&>(variable)
我定义这个效用函数:
I define this utility function:
&variable.GetInterfacePtr();
&variable.GetInterfacePtr();