|
The two libraries that are incompatible are the old
and the new io stream libraries.
<string.h> and <string> can be used
together because they don't do the same thing. <string.h> contains the old
C string functions (strcpy(), et al.) and <string> contains std::string
(C++), and again, you can mix these freely (though we are now supposed to
include <cstring> instead of <string.h>).
So, where you really have to watch out is if you
use the old stream headers: <iostream.h> should be replaced by
<iostream> etc. But I did a quick search for iostream.h and it doesn't
seem to be used in axis.
- Henrik
----- Original Message -----
Sent: Friday, July 22, 2005 2:00 AM
Subject: Using consistent libraries...
changing from <???.h> to <???>
Hi All, We are using a combination
of <string.h> and <string> in our code and this is now leading to
problems in testing as the two libraries (at least the Microsoft C++ run-time
libraries) are incompatible (check out http://msdn.microsoft.com/library/default.asp?url="">).
To avoid
future problems, I vote that we move to the newer incantation of the libraries
i.e. we move from <string.h> to <string>. If anyone thinks
that this may cause problems please let me know, but from the web page, it
seems that we have little choice...
P.S.
I guess this also means changing <algorithm.h> to
<algorithm>, <bitset.h> to <bitset>, <cassert.h> to
<cassert>, <cctype.h> to <cctype>, <cerrno.h> to
<cerrno>, <cfloat.h> to <cfloat>, <ciso646.h> to
<ciso646>, <climits.h> to <climits>, <clocale.h> to
<clocale>, <cmath.h> to <cmath>, <complex.h> to
<complex>, <csetjmp.h> to <csetjmp>, <csignal.h> to
<csignal>, <cstdarg.h> to <cstdarg>, <cstddef.h> to
<cstddef>, <cstdio.h> to <cstdio>, <cstdlib.h> to
<cstdlib>, <cstring.h> to <cstring>, <ctime.h> to
<ctime>, <cwchar.h> to <cwchar>, <cwctype.h> to
<cwctype>, <deque.h> to <deque>, <exception.h> to
<exception>, <fstream.h> to <fstream>, <functional.h>
to <functional>, <iomanip.h> to <iomanip>, <ios.h> to
<ios>, <iosfwd.h> to <iosfwd>, <iostream.h> to
<iostream>, <istream.h> to <istream>, <iterator.h> to
<iterator>, <limits.h> to <limits>, <list.h> to
<list>, <locale.h> to <locale>, <map.h> to
<map>, <memory.h> to <memory>, <numeric.h> to
<numeric>, <ostream.h> to <ostream>, <queue.h> to
<queue>, <set.h> to <set>, <sstream.h> to
<sstream>, <stack.h> to <stack>, <stdexcept.h> to
<stdexcept>, <streambuf.h> to <streambuf>, <string.h>
to <string>, <strstream.h> to <strstream>, <utility.h>
to <utility>, <valarray.h> to <valarray> and
<vector.h> to <vector>.
Regards,
Fred
Preston.
|