c++ - 传递嵌套仿函数 (C++)

标签 c++ functor

有没有办法在 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/

相关文章:

c++ - 编译时循环

scala - 仿函数有什么用处?

haskell - 没有应用程序的仿函数示例

f# - map 函数的后置条件

c++ - 有没有办法拥有更严格的泛型仿函数参数?

c++11:模板化包装函数

c++ - 动态分配的字符串数组,然后更改它的值?

c++ - 指针在删除它并在 C++ 中再次分配新内存后是否获得相同的内存地址?

c++ - 在 OpenGL 中设置 VAO 的过程

c++ - 使用 6 位设置 float 的小数部分