Latest VAX (even lower), VC++2008 (even lower), WinXP SP3. Try following code
class CTest
{
public:
void f( int& p )
{
this->f< int& >( p, 1 ) ;
}
template< class T >
void f( T p, int x ) // Place cursor on "f" and "rename" or "find refs"
{
p = 1234 * x ;
}
} ;
int _tmain(int argc, _TCHAR* argv[])
{
int n = 0 ;
CTest t ;
t.f( n ) ;
t.f( n, 10 ) ;
return 0;
}
The references-dialog shows all overloads instead the right one. a accidental click on rename can cause big, big, really big trouble in the code.
I did not checked if this failure is in other overloads than in template-methods, but i could imagine that.