gpt4 book ai didi

c++ - 为什么它在这里使用 void** ?

转载 作者:可可西里 更新时间:2023-11-01 16:40:12 25 4
gpt4 key购买 nike

代码取自v8-0.2.5

/**
* Checks whether two handles are the same.
* Returns true if both are empty, or if the objects
* to which they refer are identical.
* The handles' references are not checked.
*/
template <class S> bool operator==(Handle<S> that) {
void** a = reinterpret_cast<void**>(**this);
void** b = reinterpret_cast<void**>(*that);
if (a == 0) return b == 0;
if (b == 0) return false;
return *a == *b;
}

处理 重载运算符*,以便**this*that 返回类型T*

好像是

  void* a = reinterpret_cast<void*>(**this);
void* b = reinterpret_cast<void*>(*that);
return a == b;

也能正常工作吗?

最佳答案

如果 ab 的类型为 void*,那么您不能取消对它们的引用(除非先将它们转换为其他内容),所以 *a == *b 不会工作。

关于c++ - 为什么它在这里使用 void** ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521561/

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