首页 > 代码库 > 转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
16.47 编写你自己版本的翻转函数,通过调用接受左值和右值引用参数的函数来测试它。
#include<iostream>#include<string>#include<utility>using namespace std;template <typename T>int compare(const T &a ,const T &b){ if(a<b) return -1; if(b<a) return 1; return 0;}template <typename T>auto sum(T a,T b)->decltype(a+b){ return a+b;}//翻转函数template<typename F,typename T1,typename T2>void flip(F f,T1 &&t1,T2 &&t2){ f(std::forward<T2>(t2),std::forward<T1>(t1));}void f(int v1,int &v2){ cout<<v1<<" "<<++v2<<endl;}void g(int &&i,int &j){ cout<<i<<" "<<j<<endl;}int main(){ int j=8; compare<const char*>("hi","world"); flip(f,j,42); cout<<j<<endl; flip(g,j,42);}
转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。