使用 不定参数列表传递到 lambda 中总是报错,这里记录一下正确用法
1 | template<class T, class... Args> |
以上代码是正确的使用方法,对于不定参数
Args&&... args
在函数中使用时一定都是带上
...
使用的
刚开始报错就是我在 lambda 捕获列表中一直写的是
[&args]
, 而且后面传入 construct 函数时也需要使用
args...
或者使用 std::move(args)...
关于 lambda 捕获,可以参考 Lambda 表达式 (C++11 起) - cppreference.com
关于 不定参数,可以参考 [形参包 - cppreference.com]
包展开:
1 | f(&args...); // 展开成 f(&E1, &E2, &E3) |