This is with VS 2005
void
F(const char *&pChr) {"Test";pChr =
}
int
_tmain(int argc, _TCHAR* argv[]) {char *pChr1; const char *pChr2;
F(pChr1);
// Fails: cannot convert parameter 1 from 'char *' to 'const char *&'F((
const char *)pChr1); // Fails: cannot convert parameter 1 from 'const char *' to 'const char *&'F(pChr2);
// Succeeds return 0;}

Possible Bug in Reference to Pointer to Const
VisuallyImpaired
KrishManohar
VC6 let you get away with a lot of things; its relative level of C++ conformance was considered very bad. This caused a lot of code to be non-portable, not only to VS2003/2005 now, but also to other compilers then.
BenK95781
This behavior is by design. (Any other C++ compiler allowing it is not conforming to the C++ standard.)
In general, implicit conversions in C++ cannot simultaneously apply the const qualifier and take a reference. I don't know enough about it to give a good justification for it though.
Brian