This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: string.h and std_cstring.h
- From: <gp at qnx dot com>
- To: "Joe Buck" <Joe dot Buck at synopsys dot com>, "Graeme Peterson" <gp at qnx dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Sat, 3 Aug 2002 03:07:24 -0000
- Subject: Re: string.h and std_cstring.h
Thanks, Joe. That could be it. Our header has something like:
#ifdef _cplusplus
#define Const_ret const
#else
#define Const_ret
#endif
..
..
extern Const_ret char* strrchr(Const_ret char *, int);
..
..
So if I am remembering it right (I'm at home right now), then we get one or
the other, but never both. I am not sure about the inlines, but I will check.
I will work on it and let you all know.
Thanks again.
GP
Joe Buck <Joe.Buck@synopsys.com> said:
>
> > I am working on the QNX i386-nto support in gcc again.
> >
> > The current stumbling block is that our string.h declares
> > memchr, strchr, strpbrk, strrchr, and strstr as inline.
> > ...
>
> > Comments? Am I missing something?
>
> It sounds like you may be running into trouble because C++ requires
> overloading for certain functions. For example, in C, strchr is
>
> char* strrchr(const char *, int);
>
> while in C++ there are two:
>
> const char* strrchr(const char *, int);
> char* strrchr(char *, int);
>
> So, if your OS provides only a C version of strchr, you still have
> work to do to get the C++ versions right.
>
>
--