test: ab.h Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# ab.h

Go to the documentation of this file.

    00001 // ab.h
    00002
    00003 // Input:
    00004 // A1: A or W: Ansi, Wide
    00005 // A2: A or W
    00006
    00007 // macros: (where x is 1 or 2)
    00008 // IFx(ansi,wide)
    00009 // AWx:         adds suffix (A or W)
    00010 // Lx(a)        makes widechar
    00011
    00012 #if !defined(A1) || !defined(A2)
    00013 #error A1 and A2 must be defined as A or W
    00014 #endif
    00015
    00016 #ifdef AW1
    00017
    00018 #undef AW1
    00019 #undef AW2
    00020 #undef IF1
    00021 #undef IF2
    00022 #undef L1
    00023 #undef L2
    00024 #undef FAW
    00025
    00026 #endif
    00027
    00028 #ifndef CONCAT
    00029 #define CONCAT(a,b) a##b
    00030 #endif
    00031
    00032 #if A1
    00033
    00034 #define IF1(a,w)    w
    00035 #define AW1(x)   x##W
    00036 #define L1(x)    CONCAT(L, x)
    00037
    00038 #else
    00039
    00040 #define IF1(a,w)    a
    00041 #define AW1(x)  x##A
    00042 #define L1(x)   x
    00043
    00044 #endif
    00045
    00046 #if A2
    00047
    00048 #define IF2(a,w)    w
    00049 #define AW2(x)  x##W
    00050 #define L2(x)   CONCAT(L, x)
    00051
    00052 #else
    00053
    00054 #define IF2(a,w)    a
    00055 #define AW2(x)  x##A
    00056 #define L2(x)   x
    00057
    00058 #endif
    00059
    00060 #if A1
    00061 #if A2
    00062 #define FAW(x)  x##WW
    00063 #else
    00064 #define FAW(x)  x##WA
    00065 #endif
    00066 #else
    00067 #if A2
    00068 #define FAW(x)  x##AW
    00069 #else
    00070 #define FAW(x)  x##AA
    00071 #endif
    00072 #endif