incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: release configurations (8d, 8s, 12d, 12s) fail to compile on Windows, MSVC 7.1
Date Fri, 21 Apr 2006 19:03:12 GMT
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

Mime
View raw message