我想从Wrox's Professional C++编译这个简单的test.cpp程序:
#include<iostream>
#include<functional>
using namespace std;
void func(int num, const string& str)
{
cout << num << ' ' << str << endl;
}
int main()
{
string str = "abc";
auto f = bind(func, placeholders::_1, str);
f(16);
}
我有g ++(Debian 4.4.5-8)4.4.5编译器,我就这样使用它:
g++ -std = c++0x test.cpp -o test
我收到错误:
error: no match for call to ‘(std::_Bind<void (*(std::_Placeholder<1>, int))
(int, int)>) (int)’
为什么程序不能编译?
我也无法从C++ Reference编译示例程序。
答案 0 :(得分:4)
std::bind
是C ++ 11,g ++ 4.4不支持你需要通过系统升级或使用/ etc / apt / preferences软件包绑定至少升级到Debian Wheezy的g ++ 4.7