高手实现的过滤类型.
元<整 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,真);
}
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号