I'm not sure why Solaris' decl of std::sprintf doesn't hit the reject path above.I was able to reproduce the behavior seen on Solaris on my Fedora box by using this: namespace std { extern int sprintf (char *dst, const char *format, ...); }
This is how C library symbols were intended to be declared in the C++ <cxxx> headers (plus extern "C" that GCC doesn't implement). Very few systems went to the trouble to make those changes. Solaris was one of them. Martin