栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

可变参类模板通过tuple和递归调用展开参数包

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可变参类模板通过tuple和递归调用展开参数包

一:tuple认识

#include
using namespace std;
int main(int argc, char* argv[])
{ 
   
    tuple obj(2.5f, 1, 2);
    //元组和打印,用标准库中的get(函数模板)
    std::cout << get<0>(obj) << std::endl;
    std::cout << get<1>(obj) << std::endl;
    std::cout << get<2>(obj) << std::endl; 
    return 0;
}

二:通过tuple和递归调用展开参数包

#include
using namespace std;

template  
class A {
public:
    static void func(const tuple& t)
    {
        cout << "value = " << get(t) << endl;  
        
        if (count + 1 == maxcount) {
            return;
        }
        A::func(t); 
    }
};

template 
class A
{
public:
    static void func(const tuple& t)
    {
    }
};


template 
void functuple(const tuple& t)
{
    A<0, sizeof...(T), T...>::func(t);
}
int main(int argc, char* argv[])
{ 
    tuple mytuple(12.5f, 100, 52);
    functuple(mytuple);
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/590019.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号