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: ios_bits.cpp and MSVC
Date Wed, 24 Oct 2007 17:58:05 GMT
Farid Zaripov wrote:
>   I'm working on STDCXX-437 issue and I've removed almost all MSVC 6.0
> code, but I found some #if expression that I don't understand.
> 
> 
> src/ios_bits.cpp, line 84
> --------------------
> #if !defined (_MSC_VER) || (_MSC_VER <= 1300)
> 
> _RWSTD_DEFINE_STATIC_CONST (const ios_base::seekdir ios_base::beg);
> _RWSTD_DEFINE_STATIC_CONST (const ios_base::seekdir ios_base::cur);
> _RWSTD_DEFINE_STATIC_CONST (const ios_base::seekdir ios_base::end);
> 
> #endif // !defined (_MSC_VER) || (_MSC_VER <= 1300)
> --------------------
> 
>   This part of code used only on non-MSVC and MSVC <= 7.0.
> So these lines are excluded only on MSVC > 7.0. Why?

I suspect it's a workaround for the following bug that first
appeared in MSVC 7.0:
http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=b9853206-740a-47e7-af09-b03b51934a97

The Microsoft Feedback site gives me an error again when I try
to access the page but I copied the issue from the Rogue Wave
bug tracking database where we keep track of it to STDCXX-613:

http://issues.apache.org/jira/browse/STDCXX-613

Martin

> 
>   BTW the same definitions of the static constants are present
> in src/ctype_bits.cpp but withound any #if expressions:
> 
> src/ctype_bits.cpp, line 39
> --------------------
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::space);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::print);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::cntrl);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::upper);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::lower);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::alpha);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::digit);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::punct);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::xdigit);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::alnum);
> _RWSTD_DEFINE_STATIC_CONST (const ctype_base::mask ctype_base::graph);
> --------------------
> 
>   The ctype_base::mask and ios_base::seekdir both are typedefs
> _RWSTD_BITMASK_ENUM (...):
> 
> include/loc/_ctype.h, line 73:
>     typedef _RWSTD_BITMASK_ENUM (_RW::__rw_ctype_mask) mask;
> 
> include/rw/_iosbase.h, line 202:
>     typedef _RWSTD_BITMASK_ENUM (_RW::__rw_seekdir) seekdir;
> 
> Farid.


Mime
View raw message