模板参数推导失败

时间:2018-08-08 20:43:35

标签: c++

template<typename T>
void CallFunction(T value, void (*function) (T value) )
{
    function(value);
}

void FilterValue(int value)
{
    auto function = [] (int id) { /* ... */ };
    CallFunction(value, function);
}

此代码未编译错误没有匹配的函数调用CallFunction()。 我发现我必须做一个明确的呼叫

CallFunction<int>(value, function);

或将功能更改为

template<typename T>
void CallFunction(T value, void (*function) (decltype(value) )

您能解释一下这里发生的事情吗?

0 个答案:

没有答案