鸭子类型,不要基了.

#include "运转编.cpp"

构 子{
    空 说(){
        打印("子");
    }
};
构 儿{
    空 说(){
        打印("儿");
    }
};//完全成了鸭子类型了.可以不要基类了.<型名...T>构 鸭子{
    用 M=变量<T...>;静 常式 整 I=变量大小值<M>;
    向量<M>;
    鸭子(T&...o){(((,o),...));}
    空 加(T&...o){(((,o),...));}<型名 F>空 动作(F&f){//要传一个模板函数
        整 i=0;(&p:){
            i=p.索引();
            切为编<I>(i,[&](动 k){
                常式 整 N=推导(k)::;
                静 动 g=<N>(p);f(g);
            });
        }
    }
};<型名 T>空 啊(T&p){p.();}
//不行

空 主(){
    子 a;
    儿 b;
    鸭子<,>{a,b};//(a,b);.动作([&](&t){t.();});
}//用啊,无法推导模板参数


posted @ 2020-05-25 18:22  zjh6  阅读(12)  评论(0)    收藏  举报  来源