按顺序"&*B"立即使用引用和解引用运算符的目的是什么?

Buc*_*pus 4 c++

我已经在我们的代码中看到了这几次,它立刻让我怀疑.但由于我不知道原来的意图,我犹豫要删除它.

//requires double indirection which I won't go into
FooClass::FooFunction(void ** param)
{
  //do something
}

SomeClass * A = new SomeClass();
SomeClass **B = &A;
FooFunction( reinterpret_cast<void**>(&*B) );   // what is happening here?
Run Code Online (Sandbox Code Playgroud)

"&*B"部分是有问题的部分?随意整合重新解释演员的解释,但我对演员技巧非常熟悉.

Gre*_*ers 10

我用迭代器完成了类似的事情 - 取消引用迭代器来获取引用,然后执行"&"运算符来获取指针.

我不明白为什么它会在这里做任何事情.如果"&*"右侧的类型是指针类型,它什么都不做.