练习16.47:
代码如下:
#include <iostream>
#include <vector>
#include <list>
#include <type_traits>
#include <typeinfo>
#include <algorithm>
#include <utility>
using namespace std;
template<typename F,typename T1,typename T2>
void flip1(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;
}
int main()
{
int i = 10;
cout << "i= " << i << endl;
flip1(f, i, 20);
cout << "i= " << i << endl;
system("pause");
return 0;
}
结果如下: