Date: Thu, 30 Dec 1999 13:44:06 +0900 From: Tomoaki NISHIYAMA <tomoaki@biol.s.u-tokyo.ac.jp> To: freebsd-current@freebsd.org Cc: obrien@freebsd.org Subject: _T defined in ctype.h collides with c++ library Message-ID: <19991230134406M.tomoaki@koke.nibb.ac.jp>
next in thread | raw e-mail | index | archive | help
I reported this issue as PR misc/15127, and
posted once to hackers but get no response at all.
In FreeBSD, _T and other two letter macros are
defined in ctype.h.
Some standard c++ library code use _T as local identifiers.
I mean the library that come with egcs-2.95.[12] and 2.96 191110.
/usr/include/g++/typemacros.h also defines _T. (in 3.3R, I'm
not sure on later versions)
So, I feel better to remove these two character defines from
ctype.h. This procedure would involve also change the code in
src/lib/libc/locale/{ctype,table}.c
Substitute _T with _CTYPE_T in ctype.h
and
#define _T _CTYPE_T
in src/lib/libc/locale/{ctype,table}.c
would reduce the undocumented global namespace pollution.
What do you think of this? Is this worth doing, or you won't
change that, or any better way to go?
I think that the c++ library should not use _T anyway, and
the use of _T is reported to libstdc++-v3 group with PR #19.
The usage of _T is not very few and I'm not sure
I found all of them.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991230134406M.tomoaki>
