我正在尝试编译我从网上获得的程序。试图在代码块中使用但显示错误。我不明白出了什么问题。我在各种论坛上都抬起头来,但没有多少光明。有人可以帮忙吗?提前致谢
#include <functional>
#include <iostream>
int print_num(int i, int j) { return i + j; }
int main() {
std::function<int(int, int)> foo = print_num;
std::function<int(int, int)> bar;
try {
std::cout << foo(10, 20) << '\n';
std::cout << bar(10, 20) << '\n';
} catch (std::bad_function_call& e) {
std::cout << "ERROR: Bad function call\n";
}
return 0;
}
除了14个声明未完成声明的其他错误之外,还有一些错误。我想清除这些错误可以解决这个问题。
main.cpp | 10 |错误:&#39;功能&#39;不是&#39;标准的成员 main.cpp | 10 | error:表达式列表在功能转换中被视为复合表达式[-fpermissive]
main.cpp | 10 |错误:预期的主要表达式&#39; int&#39;
答案 0 :(得分:1)
您需要使用-std=c++11
进行编译以添加C ++ 11功能。
$ g++ -std=c++11 test.cxx && ./a.out
30
ERROR: Bad function call
VS
$ g++ test.cxx && ./a.out
test.cxx: In function ‘int main()’:
test.cxx:10:3: error: ‘function’ is not a member of ‘std’
test.cxx:10:28: error: expression list treated as compound expression in functional cast [-fpermissive]
test.cxx:10:17: error: expected primary-expression before ‘int’
...