下面的代码不能在gcc 4.5上编译,因为对foo的调用是不明确的.消除歧义的正确方法是什么?
#include <iostream>
#include <functional>
using namespace std;
void foo(std::function<void(int, int)> t)
{
t(1, 2);
}
void foo(std::function<void(int)> t)
{
t(2);
}
int main()
{
foo([](int a, int b){ cout << "a: " << a << " b: " << b << endl;});
}
Run Code Online (Sandbox Code Playgroud)