Skip site navigation (1)Skip section navigation (2)
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>