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

Reply via email to