元<整 N>常式 真型 是第一(第一<N>常&){中{};}
元<整 N>常式 假型 是第一(第二<N>常&){中{};}
元<类 T>
常式 极 是第一值=推导(是第一(求值<T>()))::值;
元<类,类,类,整 I=0>构 分割;
元<整...A,整...B,整 N>
构 分割<序列<A...>,序列<B...>,元组<>,N>{
用 第一=序列<A...>;
用 第二=序列<B...>;
};
元<整...A,整...B,整 I,类 T,类...E>
构 分割<序列<A...>,序列<B...>,元组<T,E...>,I>:条件型<是第一值<T>,分割<序列<A...,I>,序列<B...>,元组<E...>,I+1>,
分割<序列<A...>,序列<B...,I>,元组<E...>,I+1>
>{};
元<整...I,整...J,类 元组>
空 函数(浮 f,序列<I...>,序列<J...>,元组 常&元组){
输出<<取<I>(元组).值<<'\n';
输出<<取<J>(元组).值<<'\n';
}
元<类...O>
空 函数(浮 f,O&&...o){
用 分割=分割<序列<>,序列<>,元组<退化型<O>...>>;
函数实现(f,类 分割::第一{},类 分割::第二{},按元组前向(o...));
}