
On 8/19/06, Martin Wille <mw8329@yahoo.com.au> wrote:
Frederick Akalin wrote:
When compiling the example programs for dynamic_bitset with MSVC++ 8.0, I get the following message:
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xutility(2841) : warning C4996: 'std::_Fill_n' was declared deprecated
and an exhortation to use the "Safe Standard C++ Library".
As my first task as dynamic_bitset's maintainer, I want to modify it to not trigger this warning. Unfortunately, unlike most of the other functions that trigger this warning which have _s alternatives, the only alternative to std::fill_n I could find is MS's "safe" version in their standard library extension. There's a preprocessor switch I can set, (_CRT_SECURE_NO_DEPRECATE) but I believe it has to be set globally, as it seemed to have no effect when I included it in dynamic_bitset.hpp.
Does this affect any other libraries? Am I missing anything? What is the best way to solve this?
You should encase your header in warning pragmas: #if defined(_MSC_VER) && _MSC_VER >= 1400 #pragma warning(push) #pragma warning(disable:4996) #endif /* your stuff */ #if defined(_MSC_VER) && _MSC_VER >= 1400 #pragma warning(pop) #endif
IMO, MS is not in a position to deprecate anything in the C++ standard. So it makes perfect sense to ignore this problem totally and let the user handle it by properly disabling this annoyance. I don't see any need for an action on the Boost side.
I agree Microsoft has no place deprecating C++ features, but having Boost headers generate this warning may make unsuspecting developers believe it is truly unsafe or, even worse, shops which have a strict no-warning policy may not be able to use Boost because PMs won't let them use the above pragmas in their code. Perhaps there should be a set of headers which handle this that Boost library makers can include at the top and bottom of their headers.
Regards, m Send instant messages to your online friends http://au.messenger.yahoo.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Cory Nelson http://www.int64.org