过滤基:

//相当于个函数,少写点代码,不要继承,
用 量=向量<>;<型名 T>构 过滤基{//静态分发,继续往下层
    出向量 出;极 继续=0;
    显 过滤基(常 符*b){串 a=b;初化(a);}
    显 过滤基(&a){初化(a);}
    空 特初化(){}
    空 初化(&a){//c++继承
        静转<T*>()->特初化();.置出(a);
    }//每次都要转一下.不能保存指针,要变.
    //下面转成引用却不行,派生类可隐藏基类
    极 要要(&p){中 静转<T*>()->要要(p);}
    串 形式(&p){中 静转<T*>()->形式(p);}
    空 动作(&p){//p为每项,
        静转<T*>()->.(形式(p));
        //打印(静转<T*>(本)->出.出);
        //打印(中类名<T>());//看起来没问题
    }//要要时的动作
    //静转,编译期就可确定.动态,运行时.
    //让所有函数都这样,该如何?
};//继承它,并实现它的几个函数,使用时,加过滤(..).
//要用=0,来写.一层层过滤的

都要静转<T*>为指针.

<型名 T>构 过基:公 过滤基<T>{//使用基类同名函数
    用 过滤基::过滤基;
    串 形式(&p){中 直连串(p);}
};//默认形式,这样干//只能从直接基继承构造函数
构 过逗:公 过基<过逗>{//派生类<隐藏>基类实现
    用 过基::过基;
    空 特初化(){继续=1;}//特化一下;
    极 要要(&p){//要第二行有逗号的
        串 b=p[1];(!b.大小())中 假;(b.()==',')中 真;中 假;
    }
    串 形式(&p){//最后有个逗号
        去尾(p[1]);中 直连串(p);
    }//主要就是"译.txt",特殊形式这样干
};//加一个是否往下流(类似于程序的断),比如
//加个继续,类似(开关()省略断),
构 过英:公 过基<过英>{
    用 过基::过基;
    极 有中(&a){(符 c:a)(可中符(c))中 真;中 假;
    }
    极 要要(&p){//要没有中文的
        串 b=p[1];(!b.大小())中 假;(有中(b))中 假;中 真;
    }//过英,有问题,改这里了
};
构 剩余:公 过基<剩余>{
    用 过基::过基;
    极 要要(&p){中 真;}
};
构 取逗去英{//有多个过滤类型.
    向量<向量<>>;文分 a{"译.txt"};
    过逗 m{"逗短语.txt"};过英 n{"译平凡.txt"};
    剩余 o{"译译.txt"};
    用 T=变量<过逗,过英,剩余>;向量<T>{m,n,o};
    静 常式 整 I=变量大小值<T>;
    //向量<过滤基*>过{&m,&n,&o};
    //静态分发,就是三个指针而已,就是指针
    空 动作(向量<>&p){//过的顺序也是有讲究的
        整 i=0;极 要下=0;(&t:){//没有类型.
            切为编<I>(i,[&](动 k){//f取上下文
                常式 整 N=推导(k)::;
                静 动 g=<N>(t);要下=0;(!g.要要(p)){要下=1;;}
                g.动作(p);(g.继续)要下=1;
            });//这里必须是静,不然又回收了
            //打印("333",要下);
            i++;(要下);异 中;
        }//这种f里面函数变化都要小心.要用静态变量.
    }//如果有一个满足了,就中.如果不满足,则继续
    //频繁析构的就要考虑可能是函数期有问题了.
    取逗去英(){//满足多种过滤条件
        数分向量<2>(a.,);//先去(&p:){//将两个条件
            丢符(p[0],'+');动作(p);
        }//各自压自自的地方//第一项
    }
};//相当于各层过滤各层走
空 主(){//两个任务,
    取逗去英 a;
}

关键的好处就是可以统一指挥各个类.用向量<变量>统一一下.