c++參數循環移動

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章