首页 > 解决方案 > C++11 函数对象不能调用一个目标,这是另一个函数对象

问题描述

我遇到过这样的程序:

#include <iostream>
#include <functional>
#include <string>

std::function<void ()> foo(){
    const auto s = std::string("bar");
    return [&]{std::cout << s << '\n';};
}

int main()
{
    const auto fun = foo();
    fun();

    return 0;
}

我正在努力理解这个程序有什么问题以及如何解决它。

我的理解是fun应该能够调用它的目标foo并打印出来,bar但没有输出。

我很感激任何帮助!

标签: c++11functional-programming

解决方案


推荐阅读