有没有办法在 main 之外传递 foo_?我在另一个关于仿函数的问题中看到了一些关于 Boost 的内容。看起来它可能有效。这是 answer在那个问题中提到了 Boost。如果可以的话,我想避免使用 Boost。
#include <iostream>
int main()
{
class foo {
public:
void operator()() {
std::cout << "Hello" << std::endl;
}
};
foo foo_;
foo_();
return 0;
}
最佳答案
不,目前本地类型不允许进入模板(否则你可以使用 boost 或 std::tr1::function)。然而,你也许可以做 OOP,其中 Foo 继承了一些东西(它有一个你的 foo 实现的虚拟 opeator() 函数)并且你将一个 ptr 传递给 Foo 来代替。
关于c++ - 传递嵌套仿函数 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1620079/