小编Tom*_*ams的帖子

模板参数类型推导在函数对象中不起作用

我有一个模板函数,带有模板化参数类型的另一个函数.

使用它时,我必须明确指定参数类型(1)否则不会编译(2).

template<typename T>
void process(const std::function<void(const T &)>& f)
{
   // ...
}

process<Foo>( [&](const Foo& arg){/*...*/} ); // (1) Ok!

// process( [&](const Foo& arg){/*...*/} ); // (2) Won't Work! 
Run Code Online (Sandbox Code Playgroud)

让(2)工作有什么诀窍吗?

c++ templates std-function type-deduction

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

标签 统计

c++ ×1

std-function ×1

templates ×1

type-deduction ×1