赞
踩
递归展开参数包
- //递归结束时参数可以为0 ,或为1, 2等有限个
- //template<typename T>
- //void print(T t)
- //{
- // cout << t;
- //}
-
-
- //一种递归结束方式
- void print()
- {}
-
- template<typename T, typename ...Args>
- void print(T head, Args...rest)
- {
- cout << head << ",";
- print(rest...);
- }
关键点:
主递归函数里每次展开一个, 然后把余下参数包传递给自己递归
递归结束函数里有定长的参数
利用元组展开参数包
- template<size_t I = 0, typename Tuple>
- enable_if_t< I == tuple_size_v<Tuple> > print_tp(Tuple t) //当tuple索引I==tuple_size时停止
- {
- }
-
- template<size_t I = 0, typename Tuple>
- enable_if_t< I < tuple_size_v<Tuple> > print_tp(Tuple t)
- {
- cout << (get&l
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。