繁体   English   中英

Variadic模板总结类

[英]Variadic template Summing class

尝试使用可变参数模板,但由于某种原因,我的大脑已经麻木了。

我试图在编译时创建一个类来总结变量,但不能正确创建停止条件..我试着这样:...但它不编译,快速帮助任何人?

#include <iostream>
#include <type_traits>
using namespace std;


template<size_t Head, size_t ...Rest>
struct Sum
{
    static const size_t value = Head + Sum<Rest...>::value;
    static void Print() {       
        cout << value;
    }
};

template<>
struct Sum
{
    static const size_t value = 0;
};

int _tmain(int argc, _TCHAR* argv[])
{
    Sum<5,5,5>::Print();
    return 0;
}

您需要先声明基本模板。 你只是真正宣布了你将使用的两个专业。

template<size_t...> struct Sum;

template<size_t Head, size_t ...Rest>
struct Sum<Head, Rest...>
{
    static const size_t value = Head + Sum<Rest...>::value;
    static void Print() {       
        cout << value;
    }
};

template<>
struct Sum<>
{
    static const size_t value = 0;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM