14 #define QX_ALL_CHAR_TYPES char, wchar_t
16 #ifdef QX_CONF_USE_CHAR
17 #define QX_CONF_USE_WCHAR !QX_CONF_USE_CHAR
18 #elif defined(QX_CONF_USE_WCHAR)
19 #define QX_CONF_USE_CHAR !QX_CONF_USE_WCHAR
20 #elif !defined(QX_CONF_USE_CHAR) && !defined(QX_CONF_USE_WCHAR)
21 #define QX_CONF_USE_CHAR 0
22 #define QX_CONF_USE_WCHAR 1
28 using all_char_types = std::tuple<QX_ALL_CHAR_TYPES>;
35 #define QX_CHAR_TYPE char
36 #define _QXT(quote) quote
38 #elif QX_CONF_USE_WCHAR
40 #define QX_CHAR_TYPE wchar_t
41 #define _QXT(quote) L##quote
43 #if !defined(QX_CONF_UNICODE_MACRO)
44 #define QX_CONF_UNICODE_MACRO 1
47 #if QX_CONF_UNICODE_MACRO && QX_WIN
53 #define QXT(quote) _QXT(quote)
58 using char_type = QX_CHAR_TYPE;
59 using forbidden_char_types = tuple_utils::remove_t<details::all_char_types, std::tuple<char_type>>;
Contains utils for working with std::tuple.