//要把<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)
,這裏用具有多個重載的函數來試
,可能就不行.
沒必要優化無序映<串,串>
,其必然是個指針.沒必要指針的指針.返回這個,其實返回的是指針.或者叫引用.