c++ - 如果 C++ 类的运算符重载,我该如何使用默认运算符呢?

标签 c++ operator-overloading

_com_ptr_有一个重载的 operator&() 有副作用。如果我有一个变量:

_com_ptr_t<Interface> variable;

如何在不调用重载运算符并触发副作用的情况下检索其地址(_com_ptr_t* 指针)?

最佳答案

我在一次 ISO session 上看到过这种情况,因为它破坏了一些 offsetof() 宏实现 (LWG 273)。解决方案:&reinterpret_cast<unsigned char&>(variable)

关于c++ - 如果 C++ 类的运算符重载,我该如何使用默认运算符呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142607/

相关文章:

c++ - 为什么 iostream::eof 在循环条件(即 `while (!stream.eof())` )内被认为是错误的?

c++ - C++中的内部函数内存限制

c++ - 用于 Linux 上 C++ 的带有 GUI 的调试器

c++ - 未找到重载函数

C++:删除 == 或特定类型的任何其他运算符

c++ - 如何在 Cassandra 中执行具有多个操作的事务

c++ - 为什么规则不适用于使用 C++ 的 Flex?

c++ - 隐式转换为指针

c++ - 如何将元素添加到 vector 的字符串位置

python - 类实例相等和不相等