Re: string class problem
"James Kanze" <james.kanze@gmail.com> wrote in message
news:1183115887.165703.190400@o61g2000hsh.googlegroups.com...
On Jun 28, 7:44 pm, "BobR" <removeBadB...@worldnet.att.net> wrote:
James Kanze wrote in message...
/* """
(<cstdlib> is another story; none of the
compilers I have access to include the required overloads of
atexit, for example.)
""" */
I'm a little in-the-fog here [1].
// -------
In <cstdlib> (GCC(MinGW)3.3.1), after the #undefs:
namespace std {
// .....
using ::atexit;
// ..... }
Which, of course, isn't a legal implementation according to the
current standard (although the next release will make it one).
In <stdlib.h>:
/* Note: This is in startup code, not imported directly from dll */
int __cdecl atexit (void (*)(void));
// -------
What 'required overloads' are you refering to?
extern "C" int atexit(void (*f )(void))
extern "C++" int atexit(void (*f )(void))
Note that the standard requires this for every function in the C
library which takes a callback.
And of course, the real problem here is that the compiler isn't
conform; a header which did the above with g++ probably wouldn't
compile. (But then, g++ is just behaving like most other
implementors in this respect: implement whatever you feel like,
rather than what the standard requires.)
[pjp] There you go again. Most of us implementors try to implement
what we think our customers want/need, as best we understand it.
Those of us who have merely implemented whatever we feel like have
fallen by the wayside.
P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com