高手实现的过滤类型.

<整 J,...I>
常式 动 连序(序列<I...>){中 序列<J,I...>{};}<型名 Q,整 I,型名 T,型名...A>
常式 动 过呀(){
    如 常式(型长...(A)==0)
        如 常式(是相同值<Q,退化型<T>>)中 序列<>{};
        异 中 序列<I>{};
    异
        如 常式(是相同值<Q,退化型<T>>)
            中 过呀<Q,I+1,A...>();
        异
            中 连序<I>(过呀<Q,I+1,A...>());
}<型名 Q,型名...A>构 过呀序列{
    用 型=推导(过呀<Q,0,A...>());
};<型名 F,型名 T,...I>
常式 动 过函实现(F&&f,T&&t,序列<I...>){f(<I>(t)...);
}<型名 Q,型名 F,型名...A>
常式 动 过函(F&&f,A&&...a){
    用 I型=型名 过呀序列<Q,A...>::;
    中 过函实现(f,元组<A...>(a...),I型{});
}

整 测试(,双精,){0;
}

整 主()
{
    中 过函<>(测试,1,4,,9.0f,);
}


posted @ 2020-05-02 22:55  zjh6  阅读(17)  评论(0)    收藏  举报  来源