#include <iostream>
#include <type_traits>
template <typename T>
struct helper
{
void f(T &&)
{
std::cout << "&&" << std::endl;
}
void f(const T&)
{
std::cout << "const &" << std::endl;
}
};
template <typename T>
void f(T &&t)
{
helper<typename std::decay<T>::type>().f(std::forward<T>(t));
}
int main()
{
int i;
f(i);
f(i + 1);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RydWN0IGhlbHBlcgp7CiAgICB2b2lkIGYoVCAmJikKICAgIHsKICAgICAgc3RkOjpjb3V0IDw8ICImJiIgPDwgc3RkOjplbmRsOwogICAgfQogICAgCiAgICB2b2lkIGYoY29uc3QgVCYpCiAgICB7CiAgICAgIHN0ZDo6Y291dCA8PCAiY29uc3QgJiIgPDwgc3RkOjplbmRsOwogICAgfQoKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp2b2lkIGYoVCAmJnQpCnsKICAgICBoZWxwZXI8dHlwZW5hbWUgc3RkOjpkZWNheTxUPjo6dHlwZT4oKS5mKHN0ZDo6Zm9yd2FyZDxUPih0KSk7Cn0KCgppbnQgbWFpbigpCnsKICBpbnQgaTsKICBmKGkpOwogIGYoaSArIDEpOwp9