关于以下代码:
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 )
。