c++型列.

#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));
}
posted @ 2020-08-17 09:56  zjh6  阅读(17)  评论(0)    收藏  举报  来源