Sun C++ 5.6 is not a very old compiler, so I'd be surprised if it had such a fundamental bug. Are you sure you're not compiling in "compatibility mode" (e.g. -compat), http://docs.sun.com/source/819-3689/Ch2.Compat.html, which appears to allow such conversions?
