元<整 M,整...I>常式 动 连序(序列<I...>){
    中 序列<M,I...>();
}
元<整 F>构 为0:假型{};
元<>构 为0<0>:真型{};

元<型名 T>构 只3:假型{};
元<>构 只3<整>:真型{};
元<>构 只3<极>:真型{};
元<>构 只3<浮>:真型{};
//上面太难看了,要不得,要像下面这样
//元<整 F>常式 极 为0(){中 F==0;}
//这样是不行的,不支持<函数模板>,无论怎么搞,搞不了,得让标准支持他们.大神说是支持函数模板的.有空试试

元<元<整>类 G,整 F,整...I>常式 动 去(序列<F,I...>){
    //必须写成`类 G`,否则报C3339,
    //模板模板参数列表...
    如 常式(型长...(I)==0){//可以试试d的模板.
        如 常式(G<F>::值)中 序列<>{};
        异 中 序列<F>{};
    }异{//G<F>,这里都是整数,所以用F,
        序列<I...>t;
        如 常式(G<F>::值)中 去<G>(t);
        异 中 连序<F>(去<G>(t));
    }//去第一个,//争取替换掉F==0;
}//去掉含0元素,(把F==0)条件替换掉可产生一堆函数
//只能应用于整数
元<型名 F,型名...I>构 在中:假型{};
元<型名 F,型名...I>构 在中<F,I...>:元或<是相同<F,I>...>{};
//这样写,继承{}.搞了半天,这样写
//类模板<限定>.用继承.
    
元<型名 T>用 在呀=在中<T,极,整,浮,串>;
元<元<型名 B>类 G,整 M,型名 F,型名...I>
常式 动 去(){//要有个M.
    如 常式(型长...(I)==0){
        如 常式(G<F>::值)中 序列<>{};
        异 中 序列<M>{};//这里要改
    }异{//这里M为整数,
        如 常式(G<F>::值)中 去<G,M+1,I...>();
        异 中 连序<M>(去<G,M+1,I...>());
    }//参数,要加个整,要仔细,吃了2次亏都在这个M上.
}//改了下型名.没有了序列参数.运行参->编译时参了.



下面是测试代码:
```cpp
构 啊{};

空 主(){
    序列<1,0,0,3,4>m;
    动 o=去<为0>(m);
    动 t=去<在呀,0,极,整,浮,串,啊,串>();
    //构,无法实现过滤.
    打印序列(o);
    打印序列(t);//通过序列就可以搞事情了.
}//打印序列变量写错了,,让我一直在正确的代码里打圈圈