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),这里用具有多个重载的函数来试,可能就不行.
没必要优化无序映<串,串>,其必然是个指针.没必要指针的指针.返回这个,其实返回的是指针.或者叫引用.

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