显式转换为r值引用并不能明确歧义

时间:2016-11-29 15:25:10

标签: c++ rvalue-reference overloading

关于以下代码:

void foo( int in )
{
  std::cout << "no ref" << std::endl;
}

void foo( int&& in )
{
  std::cout << "ref&&" << std::endl;
}


int main()
{ 
  foo( static_cast<int&&>(1) );

  return 0;
}

我想知道为什么对foo( static_cast< int&& >(1) )的调用含糊不清:

error: call to 'foo' is ambiguous
  foo( static_cast<int&&>(1) );
  ^~~

由于显式转换为int&&,我预计会调用void foo( int&& in )

0 个答案:

没有答案