Re: Porting C to C++
Goran wrote:
Yes, write
p = new xxx;
I think that's a bad idea. Current behavior of the macro is to
terminate the process, whereas operator new will throw.
Right, using
p = new (std::nothrow) xxx;
should work though (If I remember the syntax right, that is...).
This is not the same as terminating. It's a change in behavior, which
the rest of the code may not like nor handle well (terminating on OOM
in any code is not a practice I would use, but I do feel for people who
handle heap in C code ;-) )
I am saying this because chances are, Paul's (original poster's)
"porting" is nothing much but "make this compile under a C++
compiler". If that's so, introducing a C++ artifact that may throw is
going to bring more harm than good - code not aware of exceptions
needs a significant rewrite to put exceptions in.
Simply not compiling it as C++ would be my first choice. If you need to
interface to it from C++, you can still "fix" the C headers by adding
necessary 'extern "C"' clauses and other things that prevent their use.
Uli
--
Sator Laser GmbH
Gesch?ftsf?hrer: Thorsten F?cking, Amtsgericht Hamburg HR B62 932
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]