C++20之前Lambda表达式只能捕获固定实参,如:
template <typename T>
auto fun(T&& t){
return [t = std::forward<T>(t)] {
};
}
C++20现在可以捕获模版不定长实参了:
template <typename... Args>
auto funs(Args&&... args){
// 传值捕获
return [...args = std::forward<Args>(args)] {
};
}
也可以捕获引用:
template <typename... Args>
auto funs_reference(Args&&... args){
// 引用捕获
return [&...args = std::forward<Args>(args)] {
};
}
本文介绍C++20中Lambda表达式的增强特性,包括如何捕获模板不定长实参,支持传值和引用捕获,展示了C++20在函数式编程方面的进步。
137

被折叠的 条评论
为什么被折叠?



