#include <iostream>
using namespace std;
template <typename F, typename T1, typename T2>
void flip2(F f, T1 &&t1, T2 &&t2)
{
f(std::forward<T2>(t2), t1);
}
void g(int &&i, int &j)
{
cout << i << " " << j << endl;
}
int main(void)
{
int i = 1;
flip2(g, i, 42);
}
CSNpbmNsdWRlIDxpb3N0cmVhbT4KCXVzaW5nIG5hbWVzcGFjZSBzdGQ7CgkKCXRlbXBsYXRlIDx0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Cgl2b2lkIGZsaXAyKEYgZiwgVDEgJiZ0MSwgVDIgJiZ0MikKCXsKCSAgICAgIGYoc3RkOjpmb3J3YXJkPFQyPih0MiksIHQxKTsKCX0KCQoJdm9pZCBnKGludCAmJmksIGludCAmaikKCXsKCSAgICAgIGNvdXQgPDwgaSA8PCAiICIgPDwgaiA8PCBlbmRsOwoJfQoJCglpbnQgbWFpbih2b2lkKQoJewoJICAgICAgaW50IGkgPSAxOwoJICAgICAgICBmbGlwMihnLCBpLCA0Mik7Cgl9