]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cpp.h
Use wmain() if supported by the compiler/CRT instead of main().
[wxWidgets.git] / include / wx / cpp.h
index e1267b03252d4858847b4ece9ea628bc4d5612f8..fbcbcaa1feebb242594360d48342f9abfc0f1c68 100644 (file)
 
 /* wxCONCAT works like preprocessor ## operator but also works with macros */
 #define wxCONCAT_HELPER(text, line) text ## line
-#define wxCONCAT(text, line)        wxCONCAT_HELPER(text, line)
 
-#define wxCONCAT3(x1, x2, x3) wxCONCAT(wxCONCAT(x1, x2), x3)
-#define wxCONCAT4(x1, x2, x3, x4) wxCONCAT(wxCONCAT3(x1, x2, x3), x4)
-#define wxCONCAT5(x1, x2, x3, x4, x5) wxCONCAT(wxCONCAT4(x1, x2, x3, x4), x5)
+#define wxCONCAT(x1, x2) \
+    wxCONCAT_HELPER(x1, x2)
+#define wxCONCAT3(x1, x2, x3) \
+    wxCONCAT(wxCONCAT(x1, x2), x3)
+#define wxCONCAT4(x1, x2, x3, x4) \
+    wxCONCAT(wxCONCAT3(x1, x2, x3), x4)
+#define wxCONCAT5(x1, x2, x3, x4, x5) \
+    wxCONCAT(wxCONCAT4(x1, x2, x3, x4), x5)
+#define wxCONCAT6(x1, x2, x3, x4, x5, x6) \
+    wxCONCAT(wxCONCAT5(x1, x2, x3, x4, x5), x6)
+#define wxCONCAT7(x1, x2, x3, x4, x5, x6, x7) \
+    wxCONCAT(wxCONCAT6(x1, x2, x3, x4, x5, x6), x7)
+#define wxCONCAT8(x1, x2, x3, x4, x5, x6, x7, x8) \
+    wxCONCAT(wxCONCAT7(x1, x2, x3, x4, x5, x6, x7), x8)
+#define wxCONCAT9(x1, x2, x3, x4, x5, x6, x7, x8, x9) \
+    wxCONCAT(wxCONCAT8(x1, x2, x3, x4, x5, x6, x7, x8), x9)
 
 /* wxSTRINGIZE works as the preprocessor # operator but also works with macros */
 #define wxSTRINGIZE_HELPER(x)       #x
 /* a Unicode-friendly version of wxSTRINGIZE_T */
 #define wxSTRINGIZE_T(x)            wxAPPLY_T(wxSTRINGIZE(x))
 
+/*
+    Special workarounds for compilers with broken "##" operator. For all the
+    other ones we can just use it directly.
+ */
+#ifdef wxCOMPILER_BROKEN_CONCAT_OPER
+    #define wxPREPEND_L(x)      L ## x
+    #define wxAPPEND_i64(x)     x ## i64
+    #define wxAPPEND_ui64(x)    x ## ui64
+#endif /* wxCOMPILER_BROKEN_CONCAT_OPER */
+
 /*
    Helper macros for wxMAKE_UNIQUE_NAME: normally this works by appending the
    current line number to the given identifier to reduce the probability of the