//要把<0,1,...N>变成<m,m+1,...N,0,1,...m-1>
//
元<整 N,整 M,型名 F,型名 T,整...O>
空 前移(F&f,序列<O...>&x,T&t){
f(取<(O+M)%N>(t)...);//(n+m)%n,O为变量
}//左右移是一样的,往左移,就是往右移
元<整 M,型名 F,型名...C>
空 前移(F&f,C&&...o){
用 T=元组<C...>;T t{o...};
常式 整 N=元组大小<T>::值;
型名 造序<N>::型 p;前移<N,M,F>(f,p,t);
}//类型参数变成元组,元组->序列->f()
空 测试(串&c,整 i,串&b,整 j){
打印(c,i,b,j);
}
空 主(){
//元组<整,串,整,串>t{345,"355",899,"3473477"};
//测试2<3>(t);//此时把最后一个变成第一个
//元组<整,串,整,串>t{345,"355",899,"3473477"};
整 i=2354,j=34;
串 a{"3544"},b{"8887"};
打印("输入",i,b,j,a);
前移<1>(测试,i,b,j,a);
}
无法从“overloaded-function”转换为F&
,将重复的文件名给去掉,即不要重载
.
在模板中不能使用具有重载名的函数
,不认识啊,
比如元<型名 F>空 测试(F&&f)
,这里用具有多个重载的函数来试
,可能就不行.
没必要优化无序映<串,串>
,其必然是个指针.没必要指针的指针.返回这个,其实返回的是指针.或者叫引用.