Anton Pevtsov wrote:
Unfortunately, I didn't build release configurations during long periof
of time.
But I suspect this commit:
http://svn.apache.org/viewcvs?rev=374551&view=rev
[...]
You're most likely right.
It seems that there is a conflict between declarations of the swprintf
from stdio.h and this one.
The stdio.h contains
...
/* This non-standard definition exists for historical reasons to avoid
breaking old code */
_CRTIMP int __cdecl swprintf(wchar_t *, const wchar_t *, ...);
#ifdef __cplusplus
/* For C++ we have an overloaded version with the standard definition */
extern "C++" _CRTIMP int __cdecl swprintf(wchar_t *, size_t, const
wchar_t *, ...);
#endif
...
Ugh. What a mess!
It is possible to avoid the error (but not warning for dll's) using
extern "C++" instead of extern "C" to allow overloading, but I am not
sure that this way is correct.
I suspect that's what we'll have to do. I.e., hardcode this into
our <cstdio> header for Windows/MSVC.
The same is true for vswprintf and wctomb functions.
Let me look into it. Strangely, I don't see it in our nightly
builds.
Martin