Есть ли способ дать компилятору различить guish, является ли переданная переменная ссылкой или нет, без явного указания ее, например, <int &>
? В следующем примере отображается «1», тогда как я ожидал «2»:
template <typename Type>
void fun(Type)
{
cout << 1 << '\n';
}
template <typename Type>
void fun(Type &)
{
cout << 2 << '\n';
}
int main()
{
int x = 0;
int &ref = x;
fun(ref);
}
Я также пытался использовать std::ref
, но у меня это не работает.