Dyslexicbloke:
Is there documentation somewhere that will tell me what parts of C++ are and aren't implemented.
sprintf being a prime example ...
One thing that will help in your searching is to understand that the compiler, the language, and the run-time libraries are three distinct entities.
sprintf is a function in the C(++) run-time library. It's only connection to C(++) is that it is included with most toolsets. I've actually used sprintf in a Pascal program.
The Libc (run-time libraries included with the AVR port of GCC) documentation can be found here...
http://www.nongnu.org/avr-libc/