小编Ted*_*Ted的帖子

消除对使用std :: functions的函数的调用

下面的代码不能在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)

c++ lambda function ambiguity c++11

5
推荐指数
1
解决办法
753
查看次数

标签 统计

ambiguity ×1

c++ ×1

c++11 ×1

function ×1

lambda ×1