2
我想创建模板递归,它让我通过使用make_sequence < 4>创建序列< 0,1,2,3,4>但似乎递归并没有停止专业化,只是继续运行直到stackoverfolw。模板递归不会停止
#include <iostream>
#include <cstdio>
template <std::size_t... Indices>
struct sequence {};
template<std:: size_t N, std::size_t ... Indices>
struct make_sequenceAppend{
using type = typename make_sequenceAppend<N-1, N, Indices...>::type;
};
template<std:: size_t , std::size_t ... Indices>
struct make_sequenceAppend<0ul, Indices...>{
using type = typename sequence< Indices...>::type;
};
template <std::size_t N>
struct make_sequence{
using type = typename make_sequenceAppend<N-1, N>::type;
};
int main()
{
make_sequence<4>();
return 0;
}
> *警告:类模板部分特例包含不能推导出一个模板参数; (关于'template struct make_sequenceAppend <0ul,Indices ...>') –
Jarod42
请切换您的编译器警告 – P0W