Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Aug 1999 16:26:57 -0700
From:      Thimble Smith <tim@desert.net>
To:        FreeBSD Support List <freebsd-questions@freebsd.org>
Subject:   ctype.h: #define _T 0x00100000L: how should it work?
Message-ID:  <19990822162657.A14046@desert.net>

next in thread | raw e-mail | index | archive | help
Hi.  I'm compiling omniORB2, which has the following code:

    /* in file initFile.cc */
    #include <ctype.h>

    /* ... now in another #included header, bootstrap.hh */

      class ObjIdList_var {
      public:
        typedef ObjIdList _T;
        typedef ObjIdList_var _T_var;

There are other places where the _T typedef is used.  ctype.h
has this definition:

    #define _T      0x00100000L             /* Special */

This obviously causes parse errors when I try to compile.  I can
easily fix this by adding #undef _T after every include of ctype.h.
There are other tricks that might be more elegant.  But I would
like to really fix things.  I guess I have 3 questions.

1)  Who is right?  Is it proper for omniORB to be using _T in their
    code?  Or is it right for FreeBSD to have _T defined in ctype.h?
    Or both, somehow?
2)  What, in the short term, is the best way to fix the problem?  I
    could add #ifdef SOME_IDENTIFIER ... #endif around that block of
    #defines in ctype.h.  I could add #undefs to the omniORB2 source
    code.  What have other people done for this type of thing?
3)  What is the best long-term solution?

Thanks for any help,

Tim


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990822162657.A14046>