我有一个c ++问题,请参阅下面的代码:
ArbitraryIterator *iter = (ArbitraryIterator *) state->iter;
ArbitraryCollection_Entry *result;
result = (ArbitraryCollection_Entry *) (*iter)();
我的问题是在这个代码块的最后。我不确定“(* iter)()”的最后一部分是做什么的。这是一个函数调用,但我不确定它在调用什么?这是另一种调用构造函数的方法吗?我知道这可能是一个更普遍的问题,并不是特定于它如何在上面的代码示例中实现。对此有任何帮助或澄清将不胜感激。
感谢
答案 0 :(得分:3)
(*iter)();
这是两个动作:
iter
(称之为operator*
)operator()
,不带参数你的迭代器遍历一组可调用对象,这种类型的一个例子是:
std::vector<std::function<void*()>>::iterator