考虑以下可变参数模板:模板扣除可变参数模板拉姆达参数
template<typename... Params>
void fun(void(*f)(Params...), Params... params) {
f(params...);
}
int main() {
fun(+[](int a, int b) {}, 2, 3);
}
现在有拉姆达我需要明确指定类型的所有拉姆达参数调用fun
时。这似乎是多余的,因为int, int
可以从2, 3
推导出来。有没有办法让它更简洁自动?
我想下面的工作,但它并不:
template<typename... Params>
void fun(void(*f)(Params...), Params... params) {
f(params...);
}
int main() {
fun(+[](auto a, auto b) {}, 2, 3);
}
我与g++ 5.4.0
和-std=c++14
编译。
你有一个问题,键入'int'而不是'auto'? – Brian
@Brian是的,因为它需要我推断它是'int'。它可以是更长的时间,使其更具戏剧性。 –