typedef and #ifdef

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • F. Edward Boas

    typedef and #ifdef

    How can you check to see if a type is built-in or typedef'ed? For
    example, an 8-bit integer could be u_int8_t, uint8_t, or unsigned
    __int8, depending on the OS/compiler. I'd like to write code like:

    #if defined(u_int8_ t)
    typedef u_int8_t BYTE;
    #elif defined (uint8_t)
    typedef uint8_t BYTE;
    #elif defined (__int8)
    typedef unsigned __int8 BYTE
    #endif

    However, this does not work, because built-in and typedef'ed types are
    not "defined" according to #ifdef. So two questions: Is there a
    work-around? And why doesn't C++ allow the above code?
  • Alf P. Steinbach

    #2
    Re: typedef and #ifdef

    On 11 Aug 2003 10:26:51 -0700, boas@stanford.e du (F. Edward Boas) wrote:
    [color=blue]
    >How can you check to see if a type is built-in or typedef'ed?[/color]

    You can check whether a type is built-in by checking for all
    built-in types (this list is not necessarily limited to the
    C types); use template classes for this.

    You cannot check whether a C++ type is a typedef, because a
    C++ typedef just introduces an alternate _name_ for a type.

    A typedef behaves differently in the language D.


    Comment

    Working...