Advertisement

C++ 11 lambda 表达式

阅读量:

C++ Lambda表达式应用

  • 可变模板参数
      • 参数包的递归展开方式
      • 逗号表达式用于参数包的展开
    • lambda表达式

      • lambda语法表示
        • 捕捉列表的说明

可变模板参数

【C++11标准引入了一项新的特性——可变模板参数,该特性对模板参数的定义进行了高度泛化,能够支持从零个到任意数量、多种类型参数的传递。相较于C++98/03标准中类模板与函数模板只能设定固定数量的模板参数而言,可变模板参数无疑是一项重大的技术进步。只要掌握了可变模板参数的基础应用方法,即可满足大部分开发需求。

一个基础形式的可变模板参数示例

复制代码
    template<class ...Args >
    
    void ShowList(Args ...args)
    {}
    
    
    AI写代码cpp

Args作为模板参数包,args作为函数形参参数包,在声明参数包Args...args时,其中所包含的模板参数数量可从0到任意个不等。由于无法直接访问参数包args中的各个参数,因此必须借助展开参数包的方式才能逐个获取其中的参数,这也是可变模板参数应用过程中的一个显著特征。而如何实现参数包的展开,则成为该技术应用过程中面临的主要挑战。

全部评论 (0)

还没有任何评论哟~