isalnum not declared
Nikolai Nezlobin
nezlobin@ece.umn.edu
Tue Jun 15 18:28:00 GMT 2004
Please see my comments below.
| "Nikolai Nezlobin" <nezlobin@ece.umn.edu> writes:
|
| > Eljay,
| >
| > 'isalnum' is not my function, it is the part of namespace std and the
GNU
| > project, right?
|
| isalnum is not necessarily part of the GNU project. GCC expects the
| standard C library to be provided by the target platform. cygwin,
| mingw (both windows platforms), MacOS X, [free|net|open]bsd, aix,
| solaris, hpux, and many others provide C libraries which have
| nothing to do with the GNU project, and are not under the control
| of GCC, or any GNU people.
|
| Only on linux and hurd are functions such as isalnum part of a GNU
| project (and in those cases, they are part of the glibc project,
| not the GCC project).
I meant that 'isalnum' and cctype are not home-made (Eljay seemed to think
this way). They were downloaded when I installed Linux. If I write
#include <bits/locale_facets.h> in cctype then an error occurs in some file
included from locale_facets.h, but the compiler goes through using::isalnum
in cctype. I would not consider changing cctype as a good solution unless
the changes came from someone associated with the gnu / glibc project.
|
| > Compiler says that isalnum is not declared in the following line in
cctype:
| >
| > namespace std
| > {
| > using ::isalnum;
| > ...
| > }
| >
| > I think this is very embarrassing.
|
| 'embarrassing' ? It is unfortunate that you have encountered a
| problem, and more unfortunate still that no-one has yet solved your
| problem, but I can't see anything 'embarrassing' about it - it
| isn't as if somebody was caught lying about uranium sales or some
| such.
If you wish, I will not use the word "embarrassing" anymore. I needed it to
attract attention to the error message that I received. I do not understand
how 'isalnum' can be undeclared in cctype. I will try to reduce the code to
the minimum.
|
| > Doesn't cctype refer to all the
| > necessary files, including the one that defines isalnum?
|
| ?
|
| #include<cctype>
|
| int main()
| {
| return std::isalnum('[');
| }
|
| compiles and runs correctly with g++ 2.95.3, 3.2.2, 3.3.3, and 3.4
| on i686-freebsd5.2 and i386-slackware-linux .
|
| If you were using any other linux distro, I would guess you had not
| installed the [g]libc-devel package, since most other linux
| distros do not include headers in the ordinary glibc package. But
| looking at a slackware 9.0 box (where I cannot reproduce the problem
| you report) I see that the package glibc-2.3.1-i386-3 contains the
| standard C header files.
Maybe. The error message is that 'isalnum' is not declared, not that some
file was not found though.
|
|
More information about the Gcc-help
mailing list