Re: Problem with reading an int with operator>>



P.J. Plauger wrote:

[snip]

I'm not sure that you can statically link at all these days. The only
trick I can think of, which is pretty unpalatable, is to make a
stream that doesn't look like istream<char, char_traits<char> >,
probably by writing your own traits class. That would outsmart
the prebuilt facets in the DLL. But that may well lead to other
surprises.

PJ:

I don't think it's true that you can no longer static link in VC8. I think it is just (even) more discouraged than before because you cannot static link if you're using /clr.

One of the many things I like about static linking is that I can patch the standard library myself (this is important in VC6, where the patches never made it into the service packs).

But I have a question. What exactly is compiled into msvcp60.dll (and corresponding VC7/8 versions)? Is it just std::string and std::wstring? And what exactly is the purpose of it? Is it just so these objects can be passed across DLL boundaries? Personally, I would be prepared to forgo this advantage if I could keep all my Standard Library in the headers where it could be easily updated. Is it possible to do this even if one is dynamically linking CRT (and MFC)?

It seems to me that the existence of msvcp60.dll (and VC7/8 versions) is an impediment to Microsoft updating the standard library when improvements have been found. Or am I missing something here?

David Wilkinson


.


Loading