#include <常用>
元<型名...T>构 型列{};
//如果一个光秃秃';',是不行的,要加个{}.
元<型名...T,型名...P>常式 动 连(型列<T...>,型列<P...>){
中 型列<T...,P...>();
}//这个应该就完了,不行,不是编译时.
元<整 I,型名 H,型名...U>
常式 动 后列(型列<H,U...>){
静断(I>=0&&I<型长...(U)+1,"不能越界");
如 常式(I==0){中 型列<H,U...>();}
异{
型列<U...>u;中 后列<I-1,U...>(u);
}
}//类似`子串(n);`,(0,n)呢?
//前列,代表在3之前,后列,代表在索引之后
元<整 I,型名 H,型名...U>
常式 动 前列(型列<H,U...>){
静断(I>=0&&I<型长...(U)+1,"不能越界");
如 常式(I==0){中 型列<>();}
异{
型列<U...>r;
中 连(型列<H>(),前列<I-1,U...>(r));
}
}//类似`子串(n);`,(0,n)呢?
元<整 M,整 N,型名...T>常式 动 子列(型列<T...>p){
常式 整 大小=型长...(T);
静断(M>=0&&M<=N&&N<大小,"不能越界");
中 后列<M>(前列<N>(p));
}//----(M---N)--
元<型名...T>空 打印(型列<T...>p){
(类型啊<T,' '>(),...);输出<<行尾;
}//----(M---N)--
空 主(){//使用未定义构,
用 B=型列<整,浮,极,极,整>;B b;
打印(b);
打印(连(b,b));
动 t=前列<3>(b);
打印(t);
打印(后列<4>(b));
打印(前列<3>(b));
打印(子列<1,4>(b));
}